Android源码网站:
阅读源码工具:
Source Insight 3.5
下载编译FrameWork定制系统的项目:
下载代码不一定需要加进gerrit的小组里,但提交代码一定要加入才有权限
1. 配置git
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
使用git config --list查看git配置情况。
2.生成ssh key:ssh-keygen -t rsa -C "zheng.song@archermind.com"(-t表示钥匙对采用的加密类型为后面设置的rsa,-C是注释)
3. gedit ~/.ssh/id_rsa.pub打开公钥文件添加到gerrit的SSH Public Keys里Add Key
4. gedit ~/.ssh/config写入config文件(host w.archermind.com user n010805)
5. 在repo文件同目录下./repo init -u ssh://w.archermind.com:29418/android_8.1_r14/platform/manifests拉下代码
6. ./repo sync
7. 下载代码后第一次需要先整编,源码系统需要用openJdk编译,所以要先用openJdk替换掉Jdk
8. source build/envsetup.sh
9. lunch
10. 37
11. make -j6 | tee build.log(如果需要android.jar则在这步使用 make -j8 sdk)
整编、第一次项目整编失败(ninja: build stopped: subcommand failed.)缺少两个依赖库操作方法:
1. sudo apt-get install python-wand
2. sudo apt-get install liblz4-tool
3. source build/envsetup.sh
4. lunch salvator-userdebug
5. make -j6 | tee build.log(一般电脑j6比较不卡,j8代表线程数电脑好可以用)
(如果需要android.jar编成sdk供别人或app使用,则在这步使用 make -j6 sdk)
6. 用AndroidStudio打开项目目录下的android.ipr
完毕。
编sdk生成的android.jar的地址:/work/android_8.1/out/target/common/obj/PACKAGING/android_jar_intermediates。
单编:
source build/envsetip.sh
lunch
37
mmm vendor/renesas/3rd_apk/MediaPlayer/(或者 mmm vendor/renesas/3rd_apk/NetworkConnectionsTest/)
单编后生成的jar地址为:/work/android_8.1/out/target/product/salvator/system/framework。
mmm vendor/cns_extapi/ (这等于是编最新的cns_extapi.jar,编出javalib.jar改名cns_extapi.jar)
输出位置:
/work/android_8.1/out/target/product/salvator/obj/JAVA_LIBRARIES/cns_extapi_intermediates
配置App所需的定制的FrameWork:
Android Sdk需要自己先整编FrameWork (不然无法找到对应的api,导致编译不通过)
将编译完成的android.jar移到相对应的sdk目录下面替换sdk--->platforms--->android-x--->替换对应的android.jar(根据compileSdkVersion的版本选择放在具体android-xx下)(android.jar的位置在/work/android_8.1/out/target/common/obj/PACKAGING/android_jar_intermediates/)。
项目更新:
cd到源码路径下 ./repo sync
源码路径/work/android_8.1/
音频项目/work/android_8.1/packages/testapps
将apk默认集成到车机系统中:
到 /work/android_8.1/vendor/renesas/3rd_apk/ 目录下新建一个目录,目录下放xxx.apk和Android.mk,Android.mk中的LOCAL_MODULE := 和 LOCAL_SRC_FILES :=替换成NetworkConnectionsTest 和 NetworkConnectionsTest.apk,如果apk中引用了lib还需要修改 JNI_LIBS := (具体怎么修改暂时不知道)。然后单编该文件夹mmm vendor/renesas/3rd_apk/NetworkConnectionsTest/,最后git add、git commit、git push。
提交时遇到问题:会自动创建一个Anroid.mk~一起提交,所以需要先打开Android.mk然后点左上角的Edit的Preferences再点击Editor最后把Create a backup copy of files before saving选项的勾去掉即不会再自动创建Android.mk~。
为App添加libs:
1。./repo sync
2。整编Framework
3。删除旧的libs,找到新的libs添加进Androidstudio项目内
extend Library 在源码 vendor --> cns_extapi 目录
编译系统App:
source build/envsetup.sh
lunch
mmm packages/apps/Launcher
cd out/target/product/salvator/system/app/Launcher/
ll
history
Ubuntu14删除 OpenJDK (如果已安装的话):
首先,检查是安装的哪个 OpenJDK包。
# dpkg --list | grep -i jdk
移除 openjdk包:
# apt-get purge openjdk*
卸载 OpenJDK 相关包:
# apt-get purge icedtea-* openjdk-*
检查所有 OpenJDK包是否都已卸载完毕:
# dpkg --list | grep -i jdk
如果上述未删除干净,可用 sudo apt-get remove openjdk* 删除所有相关包。
java -version也可以查看jdk相关环境。
完毕。
Ubuntu14安装OpenJDK8 (如果有已安装的OpenJDK需要先删除干净):
sudo apt-get update
sudo apt-get install openjdk-8-jdk
配置Ubuntu14的OpenJDK8环境变量:
1. gedit ~/.bashrc
注释原有jdk环境,添加新的OpenJDK8的JAVA_HOME,如下:
#export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export PATH=$PATH:/home/archermind/Android/Sdk/platform-tools
export PATH=$PATH:/home/archermind/Android/Sdk/tools/
2. source ~/.bashrc
3. java -verion
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-3~14.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
完毕。
测试:
可把项目apk拷进手机sd卡目录(adb push xxx.apk /sdcard/)
再到车载机器上adb pull /sdcard/xxx.apk 本地目录,然后adb install -r -d 进车载机器。
车机安装替换新的apk:
30窗口:su
30窗口:ip r add default via 192.168.2.1;setprop service.adb.tcp.port 5555;stop abdb;setprop service.adb.root 1;start adbd
adb connect 192.168.2.2:5555
adb root
adb remount
cd /media/archermind/C05A-5562/
adb push MediaPlayer.apk /system/priv-app/MediaPlayer/ (系统预装App)
adb shell setprop sys.cns.adb_install.enable 1 (第三方App)
adb intall -r -d xxx.apk
重启车机:
30窗口:stop
30窗口:start
可参考 https://blog.youkuaiyun.com/q1302182594/article/details/52150662