Launcher源码学习记录(一)
来源:互联网 发布:plc控制电机正反转编程 编辑:程序博客网 时间:2024/06/08 11:00
Launcher的Manifest.xml文件中,指定了applicaton的name属性为com.android.launcher2.LauncherApplication,LauncherApplication继承了Application类,该类的onCreate方法也成为了整个Launcher程序的入口。
在Manifest.xml中,有package和original-package两个属性,package="com.android.launcher"是程序运行时的进程名(之所以叫package,我的理解是,java程序都是以包的形式存在于系统中的),original-package="com.android.launcher2"则是源代码的包名。于是在Manifest.xml中,会发现有的地方用com.android.launcher2,有的地方用com.android.launcher,这主要取决于相关组件/权限/元素是面向编译的,还是面向运行的。比如activity的name,是为了定位源码中对应的activity类的,因此就是com.android.launcher2.xxxx,而permission、action这种在运行时使用的字符串常量,则是com.android.launcher.xxxx.....以此类推。
说点题外话,Manifest.xml里是可以定义多个application的,且eclipse不会给出任何错误或警告提示,这一度给我造成了一些困惑,认为多个application标签的设计提供了一种机制,使得其子组件(activity,service,provider,receiver)得以在某种层面得到封装,事实证明我想多了……写一个小demo测试一下发现,只有第一个application被识别了,后面的application标签内的所有内容都直接被当做注释无视掉了。
回到Launcher中来,LauncherApplication复写了基类Application的OnCreate方法,跟踪调试,发现Application.onCreate()是由Instrumentation.callApplicationOnCreate()调用的,而后者又是由ActivityThread.handleBindApplication()调用的,结合源码认识到,android程序启动时,首先创建应用进程,对应的类是ActivityThread,并创建该进程的Looper和Handler,之后以消息的形式通知ActivityThread完成Application的创建、Activity的启动……
- Launcher源码学习记录(一)
- Android Launcher源码分析(一)
- nginx源码学习记录(一)
- 学习httpbin源码记录(一)
- 在Eclipse中调试运行launcher源码(一)——获取launcher源码
- Android launcher - Launcher(一)
- Launcher 学习 (一) 图标位置修改
- Android4.0 Launcher 源码分析系列(一)
- Android4.0 Launcher 源码分析系列(一)
- Android Launcher研究一(编译Android4.0 launcher 源码 上)
- Launcher 解析(一)
- Android 4.0 Launcher源码分析系列(一)
- Android 4.0 Launcher源码分析系列(一)
- Android 4.0 Launcher源码分析系列(一)
- Android 4.0 Launcher源码分析系列(一)
- Android 4.0 Launcher源码分析系列(一)
- Android 4.0 Launcher源码分析系列(一)
- Android 4.0 Launcher源码分析系列(一)
- Oracle体系结构
- android CVArrays
- Android权限之packages.xml解析
- 聊聊高并发(七)实现几种自旋锁(二)
- Android recovery UI实现分析
- Launcher源码学习记录(一)
- Java数字的格式化
- iOS 判断文件下载的文件类型
- 准备开始写博客了
- 控制台编程笔记
- 开发者、设计师和管理人员必备的20款在线工具(上)
- redo log移动位置并重新命名步骤
- Android中的UID、GID与应用安全
- android绘制文本