转载请注明出处:
http://blog.csdn.net/qinjuning

前言:公司最近来了很多应届实习生,看着他们充满信心但略带稚气的脸庞上,想到了去年的自己,那是的我是不是也和

现在的他们一样呢?现在的我又改变了什么?公司的给这些实习生指定的相关培训制度还是比较完善的(我可是个菜鸟)。但我反

过来想,假如是我,我会制定一个怎样的短期或者长远的计划?总结了自己学到的知识,形成了一个学习线路,希望能给予同

道中人一点儿小小帮助。

毕业8月有余,同时伴随着从事Android开发的经验的提升。仔细思量过去的工作内容,掐指算来也是少得可怜---主要维护FM收

音机模块,间或看看Lancher模块的代码。尽管这样,总的来说,在这八个月事件的学习里,我自我感觉收获还是很大的---自学了很多

Android相关方面的知识。虽然里真正的大牛还有很远的一段路程要走,自己也会坚持学习、坚持走下去。

再次,把自己学习过程中总结的一些经验总结出来,帮助那些刚刚步入Android的网友以及有了取得了一些经验但不知如何

 继续前行的朋友,希望你们能够早日在Android世界里看到希望的曙光。同时欢迎各位朋友拍砖。

另外,本文总结的一些学习线路都是针对于Java上层应用开发的。对中间层相关开发并没有涉及到。

一、 基础篇

需要掌握的技能如下:

1、熟练掌握基本控件以及容器控件的使用 ;

常用的基本控件有:Button 、TextView、EditText、ListView等

常用的容器控件有:FrameLayout、LinearLayout、RelativeLayout等

2、熟练掌握相关监听器的注册和使用:

常用监听器有: OnClickListener、OnLongClickListener、OnItemClickListener等

3、掌握Log的使用以及分析方法 ;

4、掌握Activity、Service的生命周期和使用方法 ;

5、掌握BroadcastReceiver(广播)的接受和使用   ;

6、掌握Intent以及IntentFilter的使用   ;

7、基本掌握数据库方面知识,包括SQLiteDatabase以及ContentProvider的使用方法

除此之外,我们必须得掌握adb shell 的使用方法,常用功能有:

adb pull 、  adb push 、 adb remount 指令等

由于shell类同于Linux shell ,我们还得掌握基本的Linux指令等,例如cat、cd 等 。

知识获取渠道主要为:

   Android SDK以及网上大牛的博客。

附: 关于基础知识的介绍,国内的一些书籍质量真是相当差劲,味同嚼蜡。强烈不建议在此阶段买书籍。

这时,您已经小有所成了,能够基本掌握Android开发了。这儿,我推荐一个手把手讲解Android项目的视频:

zhengping老师讲解的,强烈推荐。

                  视频下载地址:http://www.verycd.com/topics/2847310/

祝您一臂之力的当然还有Mars老师的视频了。

实践出真知。这个阶段,你可以自己编写一些小Demo了,帮助自己在更深层次发展了。

PS:我通过看了Mars老师视频后,编写了一个简易的音乐播放器Demo, 感觉挺有成就感的。

通过前面的学习,我们可以成功进入第二个阶段了。

二、 提高篇

需要掌握的技能如下:

1掌握Canvas类的使用-- 如何绘图

2、掌握消息通信机制---Handler相关类的使用以及原理

3、掌握Context类以及实现原理

4、掌握View树的绘制流程  。 View绘制流程很重要,掌握它就基本上掌握了Android核心之一了。

4.1、掌握触摸事件的分发流程--- onInterceptTouchEvent以及onTouchEvent方法流程

4.2、掌握相关监听器的调用机制。例如OnClickListener监听时怎么调用的?

4.3、能够编写自定义View以及ViewGroup

5、理解Binder机制----Binder机制很重要,Android的进程间通信都是靠它完成的。掌握它,才能够好的完成接下

来的学习。

6、基本掌握ActivityManagerService类的使用,主要掌握的知识点包括如下:

6.1、startActivity()流程,即启动一个Activity的流程  ;

6.2、startService()流程,即启动一个Service的流程 ;

7、基本掌握PackageManagerService类的使用,主要掌握的知识点包括如下:

7.1、开机时如何解析所有已安装应用程序的Apk包的信息

7.2、Intent以及IntentFilter的匹配规则以及解析过程

8、基本掌握View添加至窗口的过程---即WindowManagerIml 、WindowManagerService类的用法

知识渠道:

网上相关大牛的博客。 (我这一亩三分地也有点货咯。(*^__^*) )

必备书籍: <Android内核剖析>

    

                           Android源代码一份

PS: 您的个人电脑上一定得有份  Android源代码,否则何以笑傲江湖 。

三、 进阶篇

1、基本理解SystemServer类加载流程以及WatchDog的功能

2、more......

我也还是个小菜鸟,更多的就不知道咯。希望以后能够完善起来。和大家共同成长。

最后,我总结的一些学习知识点只是一个提纲挈领,帮助大家学习成长的点或者线。例如:我负责通讯录模块,当然得把数据

库方面知识弄得一清二楚啊。不然,公司要我何用。因此大家在学习的时候,找出更适合自己的点。

有些人可能会想,工作中我用不到,学它干嘛?再次也规劝大家在工作之余,给自己充充电,多学点知识只有好的没有坏的。

希望大家每天能进步一点,成长一点,接近心目中的那个天空更近一点。

前面说的博客,在此推荐两个我常去的吧:

1、   应用方面,主要是魏祝林的csdn博客 :http://blog.csdn.net/Android_Tutor 。 但他的博客主要是以代码为主,

需要自己结合源代码揣摩 。

2、   框架方面,主要是老罗的csdn博客 : http://blog.csdn.net/Luoshengyang/ 。  但他的博客主要是以流程分析

为主,  而对 流程 需要的前期准备知识介绍不足,初步看起来比较难以理解,因此,买本《Android内核剖析》是必须

的,可以参考源代码仔细领悟, 强烈推荐该书籍。

由于网络上Android源码不太好找,特此共享下Android部分源码,主要包括框架层、中间层、以及一些App等,对上层开发

和中间层开发还是很有益处的:

    源码对应目录:                            下载地址:

frameworks             http://115.com/file/dpna22jr#frameworks.rar

packages               http://115.com/file/dpnay9ug#packages.rar

kernel                   http://115.com/file/anqptq4l#kernel.rar

ndk                        http://115.com/file/c2libfmk#ndk.rar

system                  http://115.com/file/beh14i2o#system.rar

   //Attention:    由于115网盘关闭了大众分享功能,仅仅好友之间可以共享, 各位朋友只需要加我为好友即可

//                                     1、打开上面链接地址; 2、添加我为好友即可;

//                       我的115账号目前是允许所有人添加我为好友的。

   由于我上115网络不给力,导致很多时候都耽搁了大家的期望。我申请了一个小号,希望大家能够自由下载,以后我也会把

  东西都放在这个小号里的。由于这个小号是用手机号码注册的,大家也不要修改了,同时希望大家不要人肉我啊。

   ID : 85699022

            密码:csdnqinjuning 

分享文件在我的网盘里,即可下载。

Good luck to U !

Android学习进阶路线导航线路(Android源码分享)的更多相关文章

  1. (转)Android学习进阶路线导航线路(Android源码分享)

     转载请注明出处:http://blog.csdn.net/qinjuning 前言:公司最近来了很多应届实习生,看着他们充满信心但略带稚气的脸庞上,想到了去年的自己,那是的我是不是也和 现在的他们一 ...

  2. Android学习笔记_48_若水新闻客户端源码剖析

    一.新闻客户端布局代码 1.1 主界面布局 使用GridView实现左右可滑动菜单项,使用标签HorizontalScrollView实现水平滚动条,将创建的GridView添加到布局文件中. < ...

  3. Android开发之Handler的用法(源码分享)

    Handler主要接受子线程发送的数据, 并用此数据配合主线程更新UI.. 当应用程序启动时.Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发. ...

  4. [Android] 随时拍图像处理部分总结及源码分享

    http://blog.csdn.net/eastmount/article/details/45492065#comments [Android] 图像各种处理系列文章合集 http://blog. ...

  5. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  6. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...

  7. Android进阶:五、RxJava2源码解析 2

    上一篇文章Android进阶:四.RxJava2 源码解析 1里我们讲到Rxjava2 从创建一个事件到事件被观察的过程原理,这篇文章我们讲Rxjava2中链式调用的原理.本文不讲用法,仍然需要读者熟 ...

  8. Android Studio2.x版本无法自动关联源码的解决方法

    Android Studio2.x版本无法自动关联源码的解决方法 在学习android开发过程中,对于一个不熟悉的类,阅读源码是一个很好的学习方式,使用andorid studio开发工具的SDK M ...

  9. android 在线升级借助开源中国App源码

    android 在线升级借助开源中国App源码 http://www.cnblogs.com/luomingui/p/3949429.html android 在线升级借助开源中国App源码分析如下: ...

随机推荐

  1. 可以高度定制的代理服务器anyproxy

    简介 anyproxy是一款可以高度定制的代理服务器,基于nodejs. 特征 支持https明文代理 支持低网速模拟 支持二次开发,可以用javascript控制代理的全部流程,搭建前端个性化调试环 ...

  2. ICTPOS3.0 词性标注集

    Ag 形语素 形容词性语素.形容词代码为a,语素代码g前面置以A. a 形容词 取英语形容词adjective的第1个字母. ad 副形词 直接作状语的形容词.形容词代码a和副词代码d并在一起. an ...

  3. 2017多校第6场 HDU 6097 Mindis 计算几何,圆的反演

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097 题意:有一个圆心在原点的圆,给定圆的半径,给定P.Q两点坐标(PO=QO,P.Q不在圆外),取圆 ...

  4. 一个朋友 js图表开发问题 用 c和 js 解决

    引言            不求知道一切, 只求发现一件 -- 乔治·西蒙·欧姆 附注:那些存在于梦幻中的事迹,那些儿时梦中的人物,每每看起,都觉得 .哎 .... 岁月 ... 一直在努力 ...  ...

  5. 设计模式之笔记--适配器模式(Adapter)

    适配器模式(Adapter) 定义 适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 适配器模式 ...

  6. python初学--文件操作、字典

    文件读写 1.先打开文件 2.读取/写入内容 3.保存文件   文件的open模式有三种 1.w 写模式,它是不能读的 只要用w打开文件,文件中的东西都会被清空 w+, 写读模式,只要沾上w 就会清空 ...

  7. NET牛人应该知道些什么?(瞬间觉得自己弱爆了)

    任何一个使用.NET的人 描述线程与进程的区别? 什么是Windows服务,它的生命周期与标准的EXE程序有什么不同 Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗 ...

  8. 本人博客已经搬至SegmentFault.com

    本人博客已经搬至SegmentFault.com 具体链接:http://segmentfault.com/blog/zhoutk

  9. LoadRunner:关联HTTP请求

    LoadRunner:关联HTTP请求 本例通过一个使用HTTP/HTML协议发送.获取服务器数据的vuser脚本,分析LoadRunner如何进行HTTP关联. 下面这个例子包括两个事务:上传数据到 ...

  10. MyBatis插入时候获取自增主键方法

    方法一:(Oralce不支持这种写法) useGeneratedkeys 默认值为 false,含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty ...