最近在做安卓系统开发,之前只写过单片机底层,没深入接触和系统相关的东西,现在从头开始学习和项目实战,觉得还是挺有意思的,记录下来,供后来的人参考,这部分在网上资料真的不多,同时,感谢易新泰的技术支持。
简介一下这个项目要学习和做的事:
(1)Linux系统安装,采用Linux Ubuntu 16.04
(2) 安卓系统安装,编译及镜像生成,并下载到板子上测试
(3)功能开发:LAN, USB3.0, USB2.0 , SDIO, PCIE,UART等等
(4)性能优化:优化系统,删除不要的代码,生成最简介专用镜像
首先准备系统安装:我安装的是ubuntu-16.04.4-desktop-amd64.iso ,在虚拟机里面,设定的硬盘大小是100G,因为这个很占内存,代码量也很大,有10几G,所以不够用,建议内存大的话,尽量大,免得后面麻烦(反正解压完之后,系统只剩30G了)。。
准备安卓系统:系统文件比较大,如下 :
获取压缩包后,合并后压缩:
解压后,可以看到Linux里面有以下东西
准备编译:(解压完毕后,把android 和 lichee 剪贴到桌面上去,不然运行会出错)
编译成功后,输出如下内容:
嗯。。。先不方,编译时间好长,而且库依赖性太强,先装一下用得上的库吧,不然一会编译失败,浪费时间:
(1)sudo apt-get install gawk:
如果没有这个库,编译报错(黄色部分)
加了上面那个库之后,编译通过,如下图:
(2)其他可能用得到的库
sudo
apt-get
install
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo
apt-get
install
-y git flex bison gperf build-essential libncurses5-dev:i386
sudo
apt-get
install
tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo
apt-get
install
dpkg-dev libsdl1.2-dev libesd0-dev
sudo
apt-get
install
git-core gnupg flex bison gperf build-essential
sudo
apt-get
install
zip curl zlib1g-dev gcc-multilib g++-multilib
sudo
apt-get
install
libc6-dev-i386
sudo
apt-get
install
lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo
apt-get
install
libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo
apt-get
install
lib32z-dev ccache
内核代码在 lichee/linux-3.10 目录, 执行上述命令在编译前会自动将配置文件从
lichee/linux-3.10/.config 作为默认配置, 下次编译时可以直接在 lichee 目录下运
行 ./build.sh , 将继续采用上一次的 .config 配置。
准备make安卓代码,
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
out/host/linux-x86/bin/jack-admin kill-server
out/host/linux-x86/bin/jack-admin start-server
安卓编译需要的时间很长,而且电脑性能要较好,否则中断,祝一次成功