Android应用程序安装过程源代码分析(2)
这个函数定义在frameworks/base/core/jni/AndroidRuntime.cpp文件中:
- /*
- * Call a static Java Programming Language function that takes no arguments and returns void.
- */
- status_t AndroidRuntime::callStatic(const char* className, const char* methodName)
- {
- JNIEnv* env;
- jclass clazz;
- jmethodID methodId;
- env = getJNIEnv();
- if (env == NULL)
- return UNKNOWN_ERROR;
- clazz = findClass(env, className);
- if (clazz == NULL) {
- LOGE("ERROR: could not find class '%s'\n", className);
- return UNKNOWN_ERROR;
- }
- methodId = env->GetStaticMethodID(clazz, methodName, "()V");
- if (methodId == NULL) {
- LOGE("ERROR: could not find method %s.%s\n", className, methodName);
- return UNKNOWN_ERROR;
- }
- env->CallStaticVoidMethod(clazz, methodId);
- return NO_ERROR;
- }
这个函数定义在frameworks/base/services/java/com/android/server/SystemServer.java文件中:
- public class SystemServer
- {
- ......
- public static final void init2() {
- Slog.i(TAG, "Entered the Android system server!");
- Thread thr = new ServerThread();
- thr.setName("android.server.ServerThread");
- thr.start();
- }
- }
这个函数定义在frameworks/base/services/java/com/android/server/SystemServer.java文件中:
- class ServerThread extends Thread {
- ......
- @Override
- public void run() {
- ......
- IPackageManager pm = null;
- ......
- // Critical services...
- try {
- ......
- Slog.i(TAG, "Package Manager");
- pm = PackageManagerService.main(context,
- factoryTest != SystemServer.FACTORY_TEST_OFF);
- ......
- } catch (RuntimeException e) {
- Slog.e("System", "Failure starting core service", e);
- }
- ......
- }
- ......
- }
Android应用程序安装过程源代码分析(2)相关推荐
- Android应用程序安装过程源代码分析(1)
Android系统在启动的过程中,会启动一个应用程序管理服务PackageManagerService,这个服务负责扫描系统中特定的目录,找到里面的应用程序文件,即以Apk为后缀的文件,然后对这些文件 ...
- Android应用程序启动过程源代码分析(5)
Step 35. MainActivity.onCreate 这个函数定义在packages/experimental/Activity/src/shy/luo/activity/MainActivi ...
- Android 系统 (79)---Android应用程序安装过程解析
Android应用程序安装过程解析 Android应用程序安装过程解析 1.程序安装的4大步骤 (1) 拷贝apk文件到指定目录 在Android系统中,apk安装文件是会被保存起来的,默认情况下,用 ...
- Android应用程序安装过程解析(源码解析)
Android应用程序安装过程解析 1.程序安装的4大步骤 (1) 拷贝apk文件到指定目录 在Android系统中,apk安装文件是会被保存起来的,默认情况下,用户安装的apk首先会被拷贝到 /da ...
- Android应用程序安装过程浅析
我们知道在android中.安装应用是由PackageManager来管理的,可是我们发现PackageManager是一个抽象类.他的installPackage方法也没有详细的实现. 那在安装过程 ...
- android 应用安装过程,Android应用程序安装过程浅析(3)
本文来自网易云社区 作者:孙有军 这里post一个Runnable来执行内部的逻辑,主要做了如下操作: 1,锁定后安装包,通过调用installPackageLI来进行的 ...
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析
在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还需要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应 ...
- Android应用程序组件Content Provider的启动过程源代码分析(1)
通过前面的学习,我们知道在Android系统中,Content Provider可以为不同的应用程序访问相同的数据提供统一的入口.Content Provider一般是运行在独立的进 ...
- Android系统默认Home应用程序 Launcher 的启动过程源代码分析
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在前面一 ...
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析(3)
Step 13. ActivityStack.startActivityLocked 这个函数定义在frameworks/base/services/java/com/android/server/ ...
最新文章
- Heroku创始人Adam Wiggins发布十二要素应用宣言
- LumaQQ.NET操作指令制作(3)
- 如何用python生成表格_用 Python 生成 HTML 表格
- VoIP协议标准浅析
- [蓝桥杯2016决赛]反幻方-next_permutation枚举
- sql的外键约束和主键约束_SQL约束
- Swift--控制流与oc不同的地方
- 《R的极客理想—工具篇》—— 第2章 时间序列基础包
- java判断斐波那契数列_Java 实例 - 斐波那契数列
- SpringMVC上传文件遇到的问题
- exists子查询 mysql
- 07 熟练使用Console类实现从控制台输入输出数据 1214
- 剑指offer 面试63题
- vs2015安装msdn_visual studio 2015离线版msdn下载和安装
- clover删除多余引导_[转载]EFI引导如何去掉多余的这个clover启动项
- Realtek RTL87xx 学习资源
- 高性能服务器天梯,2019服务器CPU天梯图 多路CPU性能排名
- Python周刊518期
- 为什么红黑树查询快_面试被问“红黑树”,我一脸懵逼…
- uni-app 杂记
热门文章
- 关于macos新功能——控制中心的一些事
- Final Cut Pro X for Mac有哪些新功能?Final Cut Pro X Mac版怎么样?
- Simbad的使用--检索、导入、保存
- k8s学习: 创建 mysql 任务
- bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
- Chromium引擎控件DotNetBrowser V1.14发布 | 附下载
- 几种div/css布局的代码
- URAL K-based Numbers(1-3)
- 微信js-sdk集成小结
- linux junit