最近在做安卓系統開發,之前只寫過單片機底層,沒深入接觸和系統相關的東西,現在從頭開始學習和項目實戰,覺得還是挺有意思的,記錄下來,供後來的人蔘考,這部分在網上資料真的不多,同時,感謝易新泰的技術支持。
簡介一下這個項目要學習和做的事:
(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
安卓編譯需要的時間很長,而且電腦性能要較好,否則中斷,祝一次成功