对android等技术的认识_android studio 不认识android包 - CSDN
精华内容
参与话题
  • 对Android的理解

    万次阅读 多人点赞 2015-07-09 10:54:34
    前言写这篇文章是为了和大家描述下我对Android的理解,同时会讲述下我后面的技术规划,希望能够大家有点参考价值。大家都想学好Android,那么怎么才能学好呢?这个真不好说,但是我可以和大家交流下我自己的心得,...

    前言

    写这篇文章是为了和大家描述下我对Android的理解,同时会讲述下我后面的技术规划,希望能够对大家有点参考价值。大家都想学好Android,那么怎么才能学好呢?这个真不好说,但是我可以和大家交流下我自己的心得,当然仅限应用层开发,因为我本身是侧重应用层开发的。

    知识的分类

    Android中有很多知识点,虽然说大部分知识点都不难,但是量很多,这就会给人一种很琐碎的感觉。在这种情况下就要对知识进行分类,我对Android知识的分类为:
    1. 基本知识点
    比如四大组件如何使用、如何创建Service、如何进行布局等。这类知识是需要熟练掌握的。
    2. 稍微深入的知识点
    比如AIDL、Binder、多进程、View的绘制流程、事件分发、消息队列等。这类知识对于高级开发者来说也是必须掌握的。
    3. 基本知识点的细节
    比如Activity的启动模式和标记位、Service同时处于start和bind状态时的停止问题、AsyncTask的同步异步问题以及使用时的限制等,这种问题还有很多。这类知识点,大家在开发过程中可以并不会去注意,这会导致一个问题,那就是开发应用没问题,但是在面试时面试官只要稍微问下细节或者特殊情况,就hold不住了。
    4. 系统核心机制
    比如主线程的消息循环、主线程如何和AMS如何跨进程交互、SystemServer进程中的各种Service的工作方式。这类知识对于高级开发者也是建议掌握的,因为它们可以让开发者理解Android的运行体系。
    5. 琐碎的知识点
    此类知识点我把它们定义为一些重要但是没有什么技术难度的问题,比如如何打开一个网页、如何打电话、如何发短信、如何定位、多点触控等,这类问题往往不好记忆,但是需要的时候去查一下就能立马搞定。

    类别 描述 开发者所需级别
    基本知识点 熟练掌握 初中级
    深入知识点 熟练掌握 中高级
    基本知识点的细节 掌握 高级
    系统核心机制 熟悉、掌握 高级、资深
    琐碎的知识点 了解 所有级别

    如何学习

    关于Android知识点的学习,无非就是看书、看官方文档,写代码等,这个是需要投入时间的。大家比较容易困惑的就是看Android源码,觉得“看不懂”,这是可以理解的。看源码的时候我们要侧重对流程的把握,刚开始时不要纠结太多的代码细节。有时候一遍看不懂的话就多看几遍,这样慢慢的就有眼熟了,眼熟后就能看懂了。另外看源码要讲究切入点,源码那么多从哪里开始下手呢?其实我建议先找一些自己感兴趣的切入点,比如大家有没有想过“Activity启动时,Activity的对象时在什么时候创建的?”这个问题,因为Java时面向对象的语言,所以Activity必须要创建一个对象,带着这个疑问去分析,一步步揭开谜团也是很有意思的事情。针对上面这个问题如何去分析Activity的对象到底是何时创建的呢,其实很简单,沿着Context的startActivity方法跟下去就好。采用这种方式去看源码,当看了一些主题后就会有一种贯穿的感觉,而这种感觉其实就是知识体系,这个知识体系是建立在Android的整体之上的。但是,不建议大家上去就看C层的源码,可等对源码有一定理解后再去看。关于琐碎的知识点,建议大家不好花费太多时间在上面,没有太大意义。

    要知其所以然

    在学习过程中,我们还要有质疑的精神。很多知识点我们掌握了,但是为什么是这样的,这个问题可能很多人并没有去想过。比如RemoteViews只支持有限的系统View,但是为什么呢?有没有想过?如果大家去想这个问题,那么就可以更好地理解RemoteViews的本质。再比如AsyncTask要求第一次访问这个类必须在UI线程,这一点我想大家都知道,但是为什么必须这样的?如果第一次访问AsyncTask在子线程会怎么样呢?带着这些疑问去思考去探索,那么你的技术档次就会更上一层楼。

    我的技术规划

    就我目前来说,我还有很多东西不太会,不管是Android还是其他技术。对于Android来说,源码我还需要更深入地看下去,同时我还需要去进一步学习Linux shell脚本以及Linux的内部实现,这样可以进一步地理解Android的实现,IOS我也需要稍微了解下,这样能够扩宽我的知识面,毕竟IOS也属于移动开发,但是我不会发很多精力去研究IOS,事实证明,“什么都擅长就等于什么都不擅长”,一个人要成为全栈工程师真的非常非常难,而且国内的招聘很多不需要全栈工程师,而且所谓的全栈工程师很可能在面试中就被淘汰(由于深度不够的原因)。我还会学习一些编译环境的搭建,比如Gradle、Gerrit等。按照这种规划去学习,我在Android就会达到一定深度并且有了Linux内核知识的支撑,然后了解IOS开发,同时还能搭建环境啥的,至于C、C++、Web开发之类的知识点,我在学校时就有初步的了解,这样一来,知识的广度和深度我都有,我认为应该是不错的规划。

    展开全文
  • Android 提高技能需要了解的一些东西

    千次阅读 2016-07-08 13:00:41
    App应用开发,涉及LaunchMode、onSaveInsatnce-State、生命周期等技术。 比如:推送消息过来之后,消息传递的流程,清楚程序的流程生命周期 2)Fragment相关技术。activity与fragment之间的消息传递,相关技术...

    需要了解的一些东西,面试的时候也经常会被问到:


    1)Activity相关,四大组件。App应用开发,涉及LaunchMode、onSaveInsatnce-State、生命周期等技术。

    比如:推送消息过来之后,消息传递的流程,清楚程序的流程生命周期


    2)Fragment相关技术。activity与fragment之间的消息传递,相关技术可以参考官方文档

    比如 有时候会遇到的问题,fragment not attached to activity 的问题,或者由于点击过快,重复创建出现的exception(这个有时候和机器有关) 


    3)序列化技术。有Parcelable和Serializable两种,经常面试的时候会被问到异同。


    4)图片加载技术。 Fresco,glide ,UIL等等一些,可以去查找一下相关的优缺点,以后相关的缓存技术。

    图片加载经常会出现OOM的问题,怎么去解决相关问题,也会在面试的时候经常被问到。


    5)fastJSON或GSON的使用。网络传递数据解析成对象的,这个不用说这个的重要性,也有通过XML,或者二进制流传递数据的。


    6)多线程相关。包括Handler、Looper、ExecutorService等。并发性等等。


    7)Adapter和ListView,RecycleView,列表的写法。


    8)网络模块:Okttp,retrofit等等,RestFul风格。

          面试的时候有时候会被问到 HttpULConnection和HttpClient的异同。

          可以demo写一个登录,了解这个。

          网络请求封装。使用AsyncTask的网络底层封装,使用Handler+Runnable的网络底层封装。


    9)Service receiver 的使用。 


    10)Android与HTML5的交互。包括Android调用HTML5的方法,以及HTML5调用Android的方法。


    11)代码混淆。ProGuard,不keep相关语法。

    gradle中的常用的一些语法。


    12)Android打包机制。涉及Android SDK中的若干命令。

            对Android打包过程做的每一件事都很了解。  进一步是Android多项目依赖的打包技术。Ant、Gradle或者Maven,掌握其中任何一种打包机制即可。

            多渠道打包的情况。


    13)线上Crash分析并修复。要具备通过分析Crash信息修复线上Crash。


    14)内存泄漏。包括内存优化、内存泄漏的场景、MAT工具的使用。


    15)调试工具。包括DDMS、Eclipse或Android Studio的调试功能。


    16)Monkey机制。Android开发人员如何对一款App进行Monkey测试。


    17)单元测试。这里指的是JUnit。对复杂的算法写过单元测试以保证其没有问题。


    18)GIT的高级功能。包括 fetch,rebase,merge,Revert、Stash、Cherry Pick和Sub Module等相关常用的命令

          如果项目中使用的是SVN,那么要掌握SVN的版本管理策略。


    19)插件化编程。哪怕知道一点DexClassLoader的概念也好


    20)设计模式。对常见的设计模式如工厂、生成器、适配器、代理、策略模式耳熟能详。


    21)常用的ADB命令


    22)算法,这个大公司的面试必备的。


    23)可以拓展技能,学习一下其他种类的语言:比如:Python,Ruby等等


           Kotlin也算是比较火的语言


    展开全文
  • Android技术内幕:系统卷》是国内首本系统Android的源代码行深分析的著作。全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层5个层次,旨在通过Android系统源...

           《Android技术内幕:系统卷》是国内首本系统对Android的源代码行深分析的著作。全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助发者加深对Android系统架构设计和实现原理的认识,从而帮助他们解决发中遇到的更加复杂的问题。


           资料地址:http://www.firstxueba.com/thread-299-1-1.html


    展开全文
  • 2014年12月从csdn专家福利获得的一本书《Android游戏开发技术实战详解》,尘封了一年多的时间,今天才翻开来看。我认识中的Android,提到Android最先浮现在我脑海中的是那可爱的机器人图标:这个Logo是由Ascender...

    2014年12月从csdn专家福利获得的一本书《Android游戏开发技术实战详解》,尘封了一年多的时间,今天才翻开来看。

    我认识中的Android,提到Android最先浮现在我脑海中的是那可爱的机器人图标:


    这个Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号(真的是灵感无处不在),于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。


    当然,这时我想起了 R2D2


    虽然很多小伙伴天天用着Android系统的手机,或者天天开发着可以运行在Android系统上的应用或游戏,但在心里的地位它却永远比不上 R2D2 吧?


    这个典型的机智、勇敢、而又鲁莽的宇航技工机器人,憨态可掬和忠主的表现是让人最容易记住的星球大战中的机器人。R2不止一次在关键时刻扭转乾坤。他那小巧的身体只有0.96米高,却塞满了装有各种工具的附加臂,这使他成为了一个了不起的太空船技工和电脑接口专家。

    机器人操作系统

    Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。

    Android本义指“机器人”,但现在我们搜索“机器人操作系统”,得到的结果却是(ROS,Robot Operating System)!

    那么我就在想:

    2007年到现在,将近十年的时间,Google在干嘛?

    为什么Android没有成为首选的机器人操作系统?

    而只是局限于手掌大的设备上。

    哦,Google在打官司!

    Google 打败 Oracle 赢得 Java 版权案官司

    智能手机

    智能手机,是指像个人电脑一样,具有独立的操作系统,独立的运行空间,可以由用户自行安装软件、游戏、导航等第三方服务商提供的程序,并可以通过移动通讯网络来实现无线网络接入手机类型的总称。

    智能手机的诞生,是掌上电脑(PocketPC)演变而来的。
    最早的掌上电脑并不具备手机通话功能,但是随着用户对于掌上电脑的个人信息处理方面功能的依赖的提升,又不习惯于随时都携带手机和PPC两个设备,所以厂商将掌上电脑的系统移植到了手机中,于是才出现了智能手机这个概念。智能手机比传统的手机具有更多的综合性处理能力功能,比如Symbian操作系统的S60系列,Symbian的S60、Symbian3,以及一些MeeGo操作系统的智能手机。然而,就新近的发展来看,这些智能手机的类型有相融合的趋势。

    智能手机具有五大特点:
    ⒈具备无线接入互联网的能力:即需要支持GSM网络下的GPRS或者CDMA网络的CDMA1X或3G(WCDMA、CDMA-2000、TD-CDMA)网络,甚至4G(HSPA+、FDD-LTE、TDD-LTE)。
    ⒉具有PDA的功能:包括PIM(个人信息管理)、日程记事、任务安排、多媒体应用、浏览网页。
    ⒊具有开放性的操作系统:拥有独立的核心处理器(CPU)和内存,可以安装更多的应用程序,使智能手机的功能可以得到无限扩展。
    ⒋人性化:可以根据个人需要扩展机器功能。根据个人需要,实时扩展机器内置功能,以及软件升级,智能识别软件兼容性,实现了软件市场同步的人性化功能。
    ⒌功能强大:扩展性能强,第三方软件支持多。
    6.运行速度快:随着半导体业的发展,核心处理器(CPU)发展迅速,使智能手机在运行方面越来越极速。

    先到这

    嗯嗯,今天就先写到这吧,

    Android本义指“机器人”,但却没有成为首选的机器人操作系统!

    我是应该失望呢,还是失望呢,还是失望呢?

    哦哦,这时我想起了安老师在《你好哇,程序员——漫话程序员面试求职、升职加薪、创业与生活》(点击链接查看书评)一书中推荐的书单,其中一本为《不抱怨的世界》,我刚刚是不是在抱怨抱怨抱怨呢?

    重要的事情说三遍!

    遇到不会的、做不好的,不妨努力做三遍,坚持下去,相信会有很大提高。

    额,忘了问一句,你认识中的Android是什么样的呢?

    上一篇:这是第一篇……

    下一篇:《Android 开发入门》我为什么要在Android找工作越来越难的时候开始学习它

    ===========文档信息============ 
    版权声明:非商用自由转载-保持署名-注明出处 
    署名(BY) :testcs_dn(微wx笑) 
    文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)


    展开全文
  • Android学习路线指南

    万次阅读 多人点赞 2018-02-28 16:17:05
    看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的Android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行...
  • 《老罗的Android之旅》导读PPT

    万次阅读 多人点赞 2017-01-06 11:26:18
    内容从Android组件设计思想,到Android源码开发和调试环境搭建,再到Android专用驱动和应用程序架构。可以作为《老罗的Android之旅》博客和《Android系统源代码情景分析》一书的导读,希望大家有帮助。
  • 那两年炼就的Android内功修养

    万次阅读 多人点赞 2017-01-06 11:27:06
    经过两年的时间,终于完成对Android系统的研究了。Android是一个博大精深的系统,老罗不敢说自己精通了(事实上最讨厌的就是说自己精通神马神马的了,或者说企业说要招聘精通神马神马的人才),但是至少可以说打通了...
  • 历时将近1的新书《Android安全技术揭秘与防范》终于出版了,第一次写书万分激动,这里向大家推广一下本书。先附上本书的照片和链接(貌似在线购买还没有出来,稍后更新): 大家可以在::...
  • Android LruCache技术原理

    千次阅读 2016-06-17 09:05:13
    记得在很早之前,我有写过一篇文章Android高效加载大图、多图解决方案,有效避免程序OOM,这篇文章是翻译自Android Doc的,其中防止多图OOM的核心解决思路就是使用LruCache技术。但LruCache只是管理了内存中图片的...
  • 全面认识Android OS

    千次阅读 多人点赞 2019-06-25 02:13:48
    缘起前几天CSDN有篇讲鸿蒙OS的文章,我觉得它是最近讨论自主开发OS的文章里很中肯的一篇了(链接不给了,.....)。我曾经在2012年介绍过Android OS的情况...
  • Android开发技术水平走向经验感言

    千次阅读 2018-01-09 16:25:15
    首先,在公司上班都嫌弃刚培训出来的菜鸟,先抱怨一下,感慨那些技术菜又会吹牛做东西又很坑的菜鸟.今天来谈谈自身技术水平认知这个概念,当然无关工作年限.单纯谈技术.  认知一下,首先那些工作很久的人不一定就...
  • 导读:对于Android开发者来说,成系列的技术文章他们的技术成长帮助最大。如下是我们向您强烈推荐的主题为Android开发的第一个系列文章。 《Android核心分析》整理如下: 1. 方法论探讨之设计意图 为什么要研究...
  • Android技术分享

    千次阅读 2019-11-14 14:12:13
    Android的介绍 什么是Android Android的历史 Android的架构 Android版本 Android系统提供了哪些东西给developer? 四大组件 Activity 活动 Service服务 Broadcast Receiver广播接收器 内容提供器 ...
  • Android DiskLruCache完全解析,硬盘缓存的最佳方案

    万次阅读 多人点赞 2016-10-14 21:55:23
    记得在很早之前,我有写过一篇文章Android高效加载大图、多图解决方案,有效避免程序OOM,这篇文章是翻译自Android Doc的,其中防止多图OOM的核心解决思路就是使用LruCache技术。但LruCache只是管理了内存中图片的...
  • 对android NDK的认识

    千次阅读 2011-07-19 14:08:09
    1、前言 6月 26 日, Google Android 发布了 NDK ,引起了很多发人员的兴趣。 NDK 全称: Native Development Kit 。下载地址为: http://developer.android.com/sdk/ndk/1.5_r1/in
  • android 黑科技 hook技术简单示例

    千次阅读 2018-11-16 12:57:05
    Hook属于android 中的黑科技,一般在逆向研究中使用较多,这几天技术分享会需要分享这个点。趁此机会来try一try。  先说一下Hook 意思,让大家有个初步的认识,要不一脸懵逼,Hook 简单类似网络传输中的中间人拦截...
  • Android学习路线:如何成长为高级工程师

    万次阅读 多人点赞 2017-08-12 12:48:04
    博主参加了2014 CSDN博客之星...既然有不少小伙伴来咨询这个问题,说明大家都还是想快速地提高技术,毕竟技术的提高是职业发展中不可或缺的一步,技术好了,才能得到认可,才能升职加薪。一般来说,快速提高技术是不太
  • Android 蓝牙开发之搜索、配对、连接、通信大全

    万次阅读 多人点赞 2019-09-09 20:59:53
    关注微信公众号(文强的技术小屋),学习更多技术知识,一起遨游知识海洋~ 蓝牙( Bluetooth®):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据 交换(使用2.4—2.485GHz的...
  • Android技术内幕.系统卷(扫描版)

    千次下载 热门讨论 2020-07-30 23:32:43
    android技术内幕:系统卷》 前言 第1章 准备工作 /1 1.1 深入认识android /2 1.1.1 android的系统构架 /2 1.1.2 android的初始化流程 /5 1.1.3 各个层次之间的相互关系 /8 1.1.4 android系统开发(移植)和应用...
  • 谈谈我自己对android开发的理解

    千次阅读 2013-08-01 16:08:21
    Android早期由“Android之父”之称的Andy Rubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位业务,基于Linux的通用平台进入了开发……简史我就不多叙了,大家想了解...
1 2 3 4 5 ... 20
收藏数 26,029
精华内容 10,411
关键字:

对android等技术的认识