FrameWork(1)环境与基础学习

本文档详细介绍了如何定制和编译Android FrameWork,包括Android源码网站、使用Source Insight阅读源码、下载与配置编译项目、解决编译错误、单编特定模块、配置App所需的定制框架以及Ubuntu环境的OpenJDK安装与配置。同时,还涵盖了将apk集成到车机系统、添加libs和测试步骤。

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

Android源码网站:

http://androidxref.com/

阅读源码工具:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值