AndroidFramework-入门 (1)Aosp环境安装

2023-01-12  本文已影响0人  CQ_TYL

VMware 17pro

下载链接:https://pan.baidu.com/s/1QERmfnx3IWlRDhTeN6bEQA 
提取码:w0ir
密钥:MC60H-DWHD5-H80U9-6V85M-8280D

ubuntu-20.04.2.0-desktop-amd64

链接:https://pan.baidu.com/s/1Yj4ClEuRaWY4iDAq4o7g1A 
提取码:pi6p

openjdk 8 的安装:

1.sudo apt-get install openjdk-8-jdk
2.安装所需软件包
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
//遇到失败,打开梯子,重新执行几次命令
//检查版本
java -version
//打印如下:
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~16.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

android-8.1.0_r1源码

链接:https://pan.baidu.com/s/1taNKjpVnTj9WwYdT5gaW1w 
提取码:8477

本地解压方式安装源码

1.安装zip解压工具:sudo apt-get install p7zip
2.cd到源码的目录执行解压命令,7zr x android-8.1.0_r1.7z
//会有一个 overwirte 提示直接输入:y 同意既可以

注意:如果是ubuntu 20.04编译需要额外配置一些:

//安装两个包:python 和 libncurses5
sudo apt-get install python libncurses5

编译 aosp 代码

//切换到源码目录后执行
 1、 . build/envsetup.sh
 2、lunch
 这里我们选择:6 –-- > aosp_x86_64
 3、make
 经历大概几个小时等待

直接make出现如下错误
问题:(原因是新版本jdk)

Ensure Jack server is installed and started
FAILED: /bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 4.8.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-2.28.RELEASE.jar 2.28.RELEASE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-3.36.CANDIDATE.jar 3.36.CANDIDATE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.7.BETA.jar 4.7.BETA || exit 47 )"
Jack server already installed 
Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log
SSL error when connecting to the Jack server. Try 'jack-diagnose'
SSL error when connecting to the Jack server. Try 'jack-diagnose'

解决办法:
1.root权限打开java.security文件;

sudo gedit /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

2.ctrl+f搜索jdk.tls.disabledAlgorithms找到并删除下图中的TLSv1,TLSv1.1;


image.png

3..bashch文件内添加环境变量

// 到根目录下执行  
cd ~
sudo gedit .bashrc
export LC_ALL=C
source .bashrc//立即生效

保存并重启下系统;
(如果修改后不再报jack错了,但是又报其他的模块错误,make clean一下,在进行make)

到这里emulator时模拟器会提示版本过期;

安装androidStudio:

注意:如software搜索不到:
settings-About-software updates-other Software-Canonical Partners
两个都勾上再试;

1.linux software应用商城中搜索androidStudio 下载安装(自动下载最新版本安装);
2.手动下载压缩包安装(自行下载指定版本):

1.下载androidStudio Linux版本:http://www.android-studio.org/,拷贝studio压缩包到共享文件夹
2.执行studio安装:
//安装unzip执行解压studio的zip压缩包命令
sudo apt install unzip
//cd到压缩包目录执行解压命令
unzip android-studio-linux.zip
//启动studio IDE
2.1通过桌面图标;
2.2通过linux命令:
 cd 到studio目录
 cd bin/
./studio.sh

可以不管这个,解决模拟器版本过期问题:
启动androidStudio根据提示按下列步骤操作

 - Start Android Studio
 - Select menu "Tools > Android > SDK Manager"
 - Click "SDK Tools" tab
 - Check "Android Emulator" checkbox
 - Click "OK"

注意只要terminal关闭后就需要重新进行环境选择

. build/envsetup.sh
lunch
emulator//启动模拟器

首次启动遇到模拟器一直在启动动画处,进不去桌面,可能因为之前的环境缓存问题执行下面的代码重新加载模拟器

emulator -wipe-data

加载源代码到 AndroidStudio:

//cd到源码目录执行以下四条命令:
 1. ". build/envsetup.sh" (source 可以用 . 代替,即". build/envsetup.sh")
 2. "lunch",并选择要编译的项目
 3. "make idegen -j4" (这里的 -j4 表示用 4 线程来编译,可以不加)
 4. "sudo development/tools/idegen/idegen.sh" //生成android.ipr和android.iml文件
 5.Android Studio选择open,选择打开"android.ipr"文件即可;

查看当前 AOSP 源码

如果没有指定版本,如何知道下载好的 AOSP 是什么版本?
找到 build/make/core/version_defaults.mk 文件打开,搜索 PLATFORM_SDK_VERSION,找到了 
PLATFORM_SDK_VERSION := 27,从 SDK 版本可以知道 AOSP 版本是 8.1
image.png

配置Studio的ADB:

//用户目录下执行
sudo gedit .bashrc
//最后一行添加sdk内的tools,platform-tools路径
export PATH=$PATH:/home/tangyulong/Android/Sdk/tools
export PATH=$PATH:/home/tangyulong/Android/Sdk/platform-tools
source .bashrc//立即生效
adb version//验证是否安装成功

添加自己的一句 log 打印在 framework 上

cd framework/base
find -name Activity.java//查找类路径
vi ./core/java/android/app/Activity.java//vim打开目标文件
在添加 onCreate 中添加一句 android.util.Log.i(“test1”, “Activity is onCreate”);
cd回到根目录:
make framework//编译新的framework文件
make systemimage//更新模拟器
上一篇 下一篇

猜你喜欢

热点阅读