当前位置: 首页>编程语言>正文

android的OSG库 osu!android

1、环境:

sony教程

https://developer.sony.com/develop/open-devices/guides/aosp-build-instructions/build-aosp-android-android-10-0-0

Ubuntu下载:tuijian18

优麒麟14.04:

http://www.ubuntukylin.com/downloads/download.php?id=38

 

大连东软信息学院镜像网站:http://mirrors.neusoft.edu.cn/ubuntu-releases/

ubuntu 版本14:

http://mirrors.neusoft.edu.cn/ubuntu-releases/trusty/ubuntu-14.04.6-desktop-amd64.iso

ubuntu 版本16:

http://mirrors.neusoft.edu.cn/ubuntu-releases/xenial/ubuntu-16.04.6-desktop-amd64.iso

ubuntu 版本18:

http://mirrors.neusoft.edu.cn/ubuntu-releases/bionic/ubuntu-18.04.3-desktop-amd64.iso

写入U盘工具:

USBWriter.exe

 

Google官方环境需求文档:

https://source.android.google.cn/setup/build/older-versions

  • Android 6.0 (Marshmallow) – AOSP master:Ubuntu 14.04 (Trusty)
  • Android 2.3.x (Gingerbread) – Android 5.x (Lollipop):Ubuntu 12.04 (Precise)
  • Android 1.5 (Cupcake) – Android 2.2.x (Froyo):Ubuntu 10.04 (Lucid)

 

如果用虚拟机,装完ubuntu系统,别忘了先添加快照!

每一步都加快照!

修改Ubuntu软件下载源:

#先切换到root
sudo su
 
#备份:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo apt-get install vim
#打开文件:
vim /etc/apt/sources.list
gedit /etc/apt/sources.list
#全选,删除:
ggvG

 

换镜像源,找到对应版本

https://developer.aliyun.com/mirror

 

 

#保存退出 :wq

更新:

sudo apt-get -y update
sudo apt-get -y upgrade --fix-missing
依赖安装:
sudo apt-get install -y --fix-missing vim lrzsz axel 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 libncurses5

 

JDK安装:

#查看已安装软件:

dpkg -l | grep openjdk

 

#在ubuntu14安装open jdk 8:
#1. 添加openjdk8的第三方源
sudo add-apt-repository ppa:openjdk-r/ppa
#2. 执行更新
apt-get update
#3. 安装openjdk8
sudo apt-get install openjdk-8-jdk
#4. 选择版本
sudo update-alternatives --config java
sudo update-alternatives --config javac
#5. 确认安装成功
java -version
#openjdk version "1.8.0_91"
#jdk8安装:
#创建目录:
mkdir /root/jdk/
cd /root/jdk
#下载:
wget https://code.aliyun.com/kar/oracle-jdk/raw/3c932f02aa11e79dc39e4a68f5b0483ec1d32abe/jdk-8u251-linux-x64.tar.gz
tar xvf jdk-8u251-linux-x64.tar.gz
#修改配置文件:
vim /etc/profile
#在最后添加:
export JAVA_HOME=/root/jdk/jdk1.8.0_251
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#刷新生效:
source  /etc/profile

 

给16G交换空间:

https://www.linuxidc.com/Linux/2015-08/122142.htm

free -m
mkdir swap
cd swap
dd if=/dev/zero of=swap bs=4M count=4096
mkswap swap
swapon swap
free -m

 

VNC安装:

https://cloud.tencent.com/developer/labs/lab/10294

关于永久性修改环境变量:

后台运行:
nohup
如果是ubuntu18,要装python2:
To install Python 2 version on Ubuntu 18.04 open up terminal and enter:
sudo apt install python-minimal
python --version

2、下载源码

Google官方文档:

https://source.android.google.cn/setup/build/downloading

科大文档:

https://lug.ustc.edu.cn/wiki/mirrors/help/aosp

 

安装repo工具:

  

 

 

#仓库文件替换为:

https://gerrit-googlesource.proxy.ustclug.org/git-repo

vim ~/bin/repo

或者应该是这么装:

sudo apt-get install repo

 

#其实该直接用清华的repo安装:

https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/

 

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo

chmod +x repo

#更新

repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc里

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

 

并重启终端模拟器。
 
下载源码有两种方法:
下载方法:使用axel下载:
axel -n 10 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-20200101.tar 
 
使用md5sum校验:
78f3ffa190a1978da4cfcca38c55c4fc  aosp-20200101.tar
方法一:
 
#创建仓库文件夹
mkdir android-source-sync
cd android-source-sync
#初始化仓库:
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
 
#某个特定版本:
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-4.0.1_r1

 

#或者使用清华的Android7:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.0.0_r3

 

#版本代号在这里看:https://source.android.google.cn/setup/start/build-numbers#source-code-tags-and-builds

 

#repo init -u git://cmcc.mirrors.ustc.edu.cn/aosp/platform/manifest -b android-1.6_r1.2

#开始同步:
repo sync
#也可以设置多线程:
repo sync -j4

 

方法二:

在这里能看见清华所有历史包:

https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/

清华源同步:

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

 

#下载最新包:

wget -c -t 0 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar

 

#或者下载16年最小的,只有16G:

wget -c -t 0 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-20160806.tar

 

#解压:
tar -xvf aosp-latest.tar
 
#进入解压得到的aosp目录:
cd aosp
 
# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
# 正常同步一遍即可得到完整目录
repo sync -j4
# 或仅checkout代码:
repo sync -l

 

3、编译:

https://source.android.google.cn/setup/build/building

开启编译缓存:
export USE_CCACHE=1
mkdir ~/ccache-location
export CCACHE_DIR=/root/ccache-location
prebuilts/misc/linux-x86/ccache/ccache -M 60G
 
开始编译:
source build/envsetup.sh
lunch 1
m -j4
#或者是后台运行:
nohup make -j4 > compile-log.txt &
tail -f compile-log.txt
#使用 jobs 查看后台运行命令

使用Docker编译:

https://android.googlesource.com/platform/build/+/master/tools/docker

 

4、错误

报错:
Created filesystem with 11/4224 inodes and 1302/16896 blocks
out/target/product/generic/cache.img maxsize=70654848 blocksize=2112 total=69206016 reserve=713856
[ 11% 1411/12209] Building with Jack: ...work_intermediates/dex-dir/classes.dex
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/dex-dir/classes.dex.rsp
Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).
GC overhead limit exceeded.
 
解决办法:
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server  
5、运行:

源码在线阅读:https://www.androidos.net.cn/

https://www.androidos.net.cn/android/7.0.0_r31/xref

https://www.androidos.net.cn/android/7.0.0_r31/xref/packages/apps/Contacts

https://www.androidos.net.cn/android/7.0.0_r31/xref/packages/apps/Contacts/res/values-zh-rCN

 

https://www.androidos.net.cn/android/7.0.0_r31/xref/packages/apps/Contacts/AndroidManifest.xml

 

https://www.androidos.net.cn/android/8.0.0_r4/xref/packages/apps/Contacts/res/values-zh-rCN/strings.xml

https://www.androidos.net.cn/android/8.0.0_r4/xref/packages/apps/Contacts/res/mipmap-xxxhdpi/ic_contacts_launcher.png

 

模拟器运行:

linux下:
运行emulator
linux下,把sdk加入环境变量:
echo "export PATH=/home/cqh:$PATH" >> /etc/profile
执行
source /etc/profile

windows下:

启动adb server

adb nodaemon server

 

不选avd

emulator -system sytem.img -data userdata.img -ramdisk ramdisk.img

列出avd

emulator -list-avds

选择avd运行

emulator -avd Nexus_5X_API_24 -system system.img -ramdisk ramdisk.img -initdata userdata.img

清空数据运行

emulator -avd Nexus_5X_API_24 -wipe-data -system system.img -ramdisk ramdisk.img -initdata userdata.img

 

说明:emulator是在/working/android4.0/out/host/linux-x86/bin目录下的,也就是编译后生成的,看上面的命令,说明得把这个目录弄进path里面。

 

 

 

 


https://www.xamrdz.com/lan/5hg1957288.html

相关文章: