Android系统默认Home应用程序Launcher的启动过程源代码分析文档格式.docx
- 文档编号:15138233
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:24
- 大小:202.36KB
Android系统默认Home应用程序Launcher的启动过程源代码分析文档格式.docx
《Android系统默认Home应用程序Launcher的启动过程源代码分析文档格式.docx》由会员分享,可在线阅读,更多相关《Android系统默认Home应用程序Launcher的启动过程源代码分析文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
Step4.
AndroidRuntime.callStatic
这个函数定义在frameworks/base/core/jni/AndroidRuntime.cpp文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step4。
Step5.
SystemServer.init2
这个函数定义在frameworks/base/services/java/com/android/server/SystemServer.java文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step5。
Step6.
ServerThread.run
这个函数定义在frameworks/base/services/java/com/android/server/SystemServer.java文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step6。
Step7.ActivityManagerService.main
这个函数定义在frameworks/base/services/java/com/android/server/am/ActivityManagerServcie.java文件中:
viewplain
1.public
final
class
ActivityManagerService
extends
ActivityManagerNative
2.
implements
Watchdog.Monitor,
BatteryStatsImpl.BatteryCallback
{
3.
......
4.
5.
public
static
Context
main(int
factoryTest)
6.
AThread
thr
=
new
AThread();
7.
thr.start();
8.
9.
synchronized
(thr)
10.
while
(thr.mService
==
null)
11.
try
12.
thr.wait();
13.
}
catch
(InterruptedException
e)
14.
15.
16.
17.
18.
m
thr.mService;
19.
mSelf
m;
20.
ActivityThread
at
ActivityThread.systemMain();
21.
mSystemThread
at;
22.
context
at.getSystemContext();
23.
m.mContext
context;
24.
m.mFactoryTest
factoryTest;
25.
m.mMainStack
ActivityStack(m,
context,
true);
26.
27.
m.mBatteryStatsService.publish(context);
28.
m.mUsageStatsService.publish(context);
29.
30.
31.
thr.mReady
true;
32.
thr.notifyAll();
33.
34.
35.
m.startRunning(null,
null,
null);
36.
37.
return
38.
39.
40.
41.}
这个函数首先通过AThread线程对象来内部创建了一个ActivityManagerService实例,然后将这个实例保存其成员变量mService中,接着又把这个ActivityManagerService实例保存在ActivityManagerService类的静态成员变量mSelf中,最后初始化其它成员变量,就结束了。
Step8.
PackageManagerService.main
这个函数定义在frameworks/base/services/java/com/android/server/PackageManagerService.java文件中,具体可以参考前面一篇文章Android应用程序安装过程源代码分析的Step7。
执行完这一步之后,系统中的应用程序的所有信息都保存在PackageManagerService中了,后面Home应用程序Launcher启动起来后,就会把PackageManagerService中的应用程序信息取出来,然后以快捷图标的形式展示在桌面上,后面我们将会看到这个过程。
Step9.
ActivityManagerService.setSystemProcess
void
setSystemProcess()
mSelf;
ServiceManager.addService("
activity"
m);
meminfo"
MemBinder(m));
if
(MONITOR_CPU_USAGE)
cpuinfo"
CpuBinder(m));
permission"
PermissionController(m));
ApplicationInfo
info
mSelf.mContext.getPackageManager().getApplicationInfo(
"
android"
STOCK_PM_FLAGS);
mSystemThread.installSystemApplicationInfo(info);
(mSelf)
ProcessRecord
app
mSelf.newProcessRecordLocked(
mSystemThread.getApplicationThread(),
info,
info.processName);
25.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 系统 默认 Home 应用程序 Launcher 启动 过程 源代码 分析