(转)Android学习进阶路线导航线路(Android源码分享)
转载请注明出处: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/
百度视屏:http://blog.csdn.net/coolszy/
祝您一臂之力的当然还有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内核剖析》是必须
的,可以参考源代码仔细领悟, 强烈推荐该书籍。
好的博客:http://www.cnblogs.com/TerryBlog/archive/2010/08/16/1801016.html
http://www.cnblogs.com/TerryBlog/category/248682.html Terry
http://zuiniuwang.blog.51cto.com/3709988/p-5 最牛傻蛋
由于网络上Android源码不太好找,特此共享下Android部分源码,主要包括框架层、中间层、以及一些App等,对上层开发
和中间层开发还是很有益处的:
(转)Android学习进阶路线导航线路(Android源码分享)的更多相关文章
- Android学习进阶路线导航线路(Android源码分享)
转 ...
- Android学习笔记_48_若水新闻客户端源码剖析
一.新闻客户端布局代码 1.1 主界面布局 使用GridView实现左右可滑动菜单项,使用标签HorizontalScrollView实现水平滚动条,将创建的GridView添加到布局文件中. < ...
- Android开发之Handler的用法(源码分享)
Handler主要接受子线程发送的数据, 并用此数据配合主线程更新UI.. 当应用程序启动时.Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发. ...
- [Android] 随时拍图像处理部分总结及源码分享
http://blog.csdn.net/eastmount/article/details/45492065#comments [Android] 图像各种处理系列文章合集 http://blog. ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)
Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...
- 五、Android学习第四天补充——Android的常用控件(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 五.Android学习第四天补充——Android的常用控件 熟悉常用的A ...
- Android进阶:五、RxJava2源码解析 2
上一篇文章Android进阶:四.RxJava2 源码解析 1里我们讲到Rxjava2 从创建一个事件到事件被观察的过程原理,这篇文章我们讲Rxjava2中链式调用的原理.本文不讲用法,仍然需要读者熟 ...
- Android学习记录(3)—Android中ContentProvider的基本原理学习总结
一.ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然使用其他方法也可以对外共享数据 ...
随机推荐
- android获取手机录
在Android开发中,读取手机通讯录中的号码是一种基本操作,但是由于Android的版本众多,所以手机通讯录操作的代码比较纷杂,在本文中进行一下总结. Android1.5是现在的Android系统 ...
- BASE64与单向加密算法MD5&SHA&MAC
言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书. 如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Diges ...
- Oracle ODP.NET连接池
数据库连接池 连接池是数据库连接的缓存,每当应用程序需要连接数据库时向连接池申请数据库连接,连接池负责具体数据库连接的创建和销毁.连接池中的数据库连接会缓存一段时间,后续的连接请求首先使用缓存中的数据 ...
- (转)android Fragments详解三:实现Fragment的界面
为fragment添加用户界面 fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中. 一个 要为fragment提供layo ...
- 项目中添加Log4J支持
首先,在项目中的classes 中新建立一个log4j.properties文件即可: 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义.定义步骤就是对Logger.Append ...
- Java 7 中 NIO.2 的使用——文件递归操作
众所周知,递归编程是一项有争议的技术,因为它需要大量的内存,但是它能简化一些编程任务.基本上,一个递归操作都是程序调用自己传递参数修改的值或者参数传递到当前的程序循环中.递归编程通常用来计算阶乘斐波那 ...
- Java 调用 Javascript 函数的范例
在Java 7 以后,可以在Java代码中调用javascript中的函数,请看下面的例子: package com.lee; import java.io.FileNotFoundException ...
- SQLServer BCP 命令的使用
现在有一个包含数据的文件,每个字段用“|”分隔,现在要把这些数据导入到数据库的表中. 数据文件如下: R001|20150710 可以使用如下命令: bcp testDB.dbo.testTable ...
- hibernate 注解写在哪?
是写在get方法上还是 还是成员变量上? 一般 成员变量是私有的,如果写在成员变量上,那么hibernate就能过通过反射机制直接访问到私有变量,破坏了数据的封装性: 所以 :推荐写在方法上,虽然写的 ...
- Phyre LCUE with YEBIS cause issues about GS
when LCUE enabled in phyreEngine when Yebis integrated and render there are two mainloopdraws in one ...