企业宣传,产品推广,广告招商,广告投放联系seowdb

图解Android运行程序构建原理

Android是Google开发的基于Linux平台的开源手机操作系统,每一个Android运行在底层都会对应一个独立的Dalvik虚构机实例,其代码在虚构机的解释下得以口头,这个系统颁布后大大的繁难了用户的需求。

每一个运行都运转在一个 Dalvik虚构机 实例里,而每一个虚构机实例都是一个独立的进程空间。虚构机的线程机制,内存调配和治理。Mutex等等都是依赖底层操作系统而成功的。一切运行的线程都对应一个Linux线程,虚构机因此可以更多的依赖操作系统的线程调度和治理机制。

不同的运行在不同的进程空间里运转,加之对不同起源的运行都经常使用不同的Linux用户来运转,可以***水平的包全运行的安保和独立运转。Zygote是一个虚构机进程,同时也是一个虚构机实例的孵化器,每当系统要求口头一个 Android运行程序 ,Zygote就会FORK出一个子进程来口头该运行程序。

这样做的好处显而易见:Zygote进程是在系统启动时发生的,它会成功虚构机的初始化,库的加载,预置类库的加载和初始化等等操作,而在系统须要一个新的虚构机实例时。Zygote经过复制自身,最极速的提供个系统。另外,关于一些只读的系统库,一切虚构机实例都和Zygote共享一块内存区域,大小节俭了内存开支。

运行程序包(APK)被颁布到手机上后,运转前会对其中的DEX文件启动提升,提升后的文件被保留到缓存区域(提升后的格局被称为DEY),虚构时机间接口头该文件。假设运行包文件不出现变动,DEY文件不会被重重生成。

Android运行程序 所经常使用的编程言语是Java言语,和JavaSE一样,编译时经常使用SunJDK将Java源程序编程成规范的Java字节码文件(.class文件)。然后经过工具软件DX把一切的字节码文件转成DEX文件(classes.dex)。

***经常使用打包工具(aapt)将DEX文件,资源文件以及Manifest.xml文件(二进制格局)组分解一个运行程序包(APK)。运行程序包可以被颁布到手机上运转。

【编辑介绍】

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender