下载此文档

Android应用程序安装过程源代码分析.docx


文档分类:IT计算机 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
Android系统在启动的过程中,会启动一个应用程序管理服务PackageManagerService,这个服务负责扫描系统中特定的目录,找到里面的应用程序文件,即以Apk为后缀的文件,然后对这些文件进解析,得到应用程序的相关信息,完成应用程序的安装过程,本文将详细分析这个过程。
        应用程序管理服务PackageManagerService安装应用程序的过程,,并从里面得到得到应用程序的相关信息,例如得到应用程序的组件Activity、Service、Broadcast Receiver和Content Provider等信息,有了这些信息后,通过ActivityManagerService这个服务,我们就可以在系统中正常地使用这些应用程序了。
        应用程序管理服务PackageManagerService是系统启动的时候由SystemServer组件启动的,启后它就会执行应用程序安装的过程,因此,本文将从SystemServer启动PackageManagerService服务的过程开始分析系统中的应用程序安装的过程。
        应用程序管理服务PackageManagerService从启动到安装应用程序的过程如下图所示:
        下面我们具体分析每一个步骤。
        Step 1.
        这个函数定义在frameworks/base/services/java/com/android/server/:
view plain
public class SystemServer  
{  
    ......  
  
    native public static void init1(String[] args);  
  
    ......  
  
    public static void main(String[] args) {  
        ......  
  
        init1(args);  
  
        ......  
    }  
  
    ......  
}  
        SystemServer组件是由Zygote进程负责启动的,启动的时候就会调用它的main函数,这个函数主要调用了JNI方法init1来做一些系统初始化的工作。
        Step 2.
        这个函数是一个JNI方法,实现在 frameworks/base/services/jni/:
view plain
namespace android {  
  
extern "C" int system_init();  
  
static void android_server_SystemServer_init1(JNIEnv* env, jobject clazz)  
{  
    system_init();  
}  
  
/* 
 * JNI registration. 
 */  
static JNINativeMethod gMethods[] = {  
    /* name, signature, funcPtr */  
    { "init1", "([Ljava/lang/String;)V", (void*) android_server_SystemServer_init1 },  
};  
  
int register_android_server_SystemServer(JNIEnv* env)  
{  
    return jniRegisterNativeMethods(env, "com/android/server/SystemServer",  
            gMethods, NELEM(gMethods));  
}  
  
}; // namespace android  
        这个函数很简单,只是调用了system_init函数来进一步执行操作。
        Step 3. 
        函数system_init实现在libsystem_server库中,源

Android应用程序安装过程源代码分析 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wxc6688
  • 文件大小84 KB
  • 时间2020-11-21