Android10 源码编译相关问题

本文详细介绍了Android10源码的编译环境配置要求,包括操作系统和JDK版本的选择,并提供了常见编译问题的解决办法。此外,还探讨了Android10系统关键进程如Zygote、SystemServer的启动流程及系统签名工具的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Android10 源码编译相关问题

2、Android10 系统进程Zygote启动

3、Android10 系统进程SystemServer

4、Android10 launcher启动流程

5、Android10 系统发送开机广播时机

6、Android10 AppComponentFactory源码梳理

7、Android10 InputManagerService事件输入输出

8、Android10 InputManagerService本地实现

9、Android10 SystemUI系统手势导航


网络上关于源码编译的文章很多,这里就不多赘述了,这里主要是说下在编译中需要注意的地方:

 1、在搭建环境时,需要注意对版本的要求:

        1.1、操作系统要求
        在AOSP开源中,主分支使用Ubuntu长期版本开发和测试的,因此也建议你使用Ubuntu进行编译,下面我们列出不同版本的的Ubuntu能够编译那些android版本:

Android版本编译要求的Ubuntu最低版本
Android 6.0至AOSP masterUbuntu 14.04
Android 2.3.x至Android 5.xUbuntu 12.04
Android 1.5至Android 2.2.xUbuntu 10.04

        1.2、JDK版本要求
        除了操作系统版本这个问题外,我们还需要关注JDK版本问题,为了方便,同样我们也列出的不同Android版本的源码需要用到的JDK版本:

Android版本编译要求的JDK版本
AOSP的Android主线OpenJDK 8
Android 5.x至android 6.0OpenJDK 7
Android 2.3.x至Android 4.4.xOracle JDK 6
Android 1.5至Android 2.2.xOracle JDK 5

 更具体的可以参看:Google源码编译要求

这里以AOSP主线为例,环境配置如下:

如果是ubuntu18.04,需要安装软件包:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

需要安装openjdk 8:

sudo apt install openjdk-8-jdk

需要安装python2.6--2.7:

sudo apt install python

2、编译android系统时,如果报电脑内存不足OutOfMemory,这个就需要去设置swap,设置swap可以在安装ubuntu系统时设置。

3、有时候是在编译到98%的时候报Exception in thread "main" java.lang.OutOfMemoryError: Java heap space ,这个时候就要调整java虚拟机的内存了,解决方案如下:

declare -x _JAVA_OPTIONS="-Xmx4096m"

declare -x JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"

可以输入java -version验证是否设置成功了,这里需要注意,如果退出这个控制台,再次进入的时候需要重新设置。

4、如果使用的是VMware搭载的ubuntu,一般我们开启虚拟机的时候可以设置内存和处理器的大小,比如电脑cpu是4核的,初始设置的2,编译时间要20个小时,后面cpu设置为4,编译时间差不多就是10小时,内存同样也可以设置,当你设置为最大时候,这个时候你的电脑想要做其他事情就会很卡,所以这个推荐在晚上不用的时候去编译。
 

 5、系统签名工具(signapk.jar)和签名文件(platform.pk8、platform.x509.pem)

        5.1、有源码,在源码中的位置:

                platform.pk8: /build/target/product/security/

                platform.x509.pem:/prebuilts/sdk/tools/lib/

        5.2、没有源码,则需要板子供应商提供。

        5.3、使用签名工具和签名文件给apk签名:

        java -jar signapk.jar platform.x509.pem platform.pk8 demo.apk signdemo.apk

        5.4、将platform.pk8、platform.x509.pem转换成keystore,apk中使用生成的keystore就是系统签名了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值