electron android编译,Tiny4412_Android编译步骤
前言:Android編譯對PC機系統性能有要求,建議使用win7 64位操作系統,硬盤最小80GB剩余容量,否則編譯Android源碼會出現“No space left on device”。
1、搭建好的VMWare 虛擬機:
參考《韋東山Android系統視頻使用手冊20160303》文檔說明,使用已經搭建好的VMWare 虛擬機映象文件,當然也可以參照文檔自己安裝ubuntu-12.04.5-64bit 系統。
2、設置ubuntu虛擬機的靜態IP地址:
參考博文“Ubuntu9.10靜態IP設置方法”、“設置ubuntu靜態ip并聯網”、“ifconfig 后看不到eth0,但是有eth3和eth4”設置ubuntu虛擬機的靜態IP地址,然后用CRT即可登錄虛擬機,用cuteftp在win之間傳輸文件;
參考:Tiny4412和PC傳文件(含掛載NFS文件系統)方法
3、編譯Android映像文件:
①準備工作:
目前只需要從網盤下載以下5 個文件:
Android-5.0.2.part1.rar
Android-5.0.2.part2.rar
Android-5.0.2.part3.rar
Android-5.0.2.part4.rar
linux-3.0.86-20150324.tgz
在Windows 下雙擊“Android-5.0.2.part1.rar”解壓,得到android-5.0.2-fs-20150325.tar.gz,把它放到Ubuntu 的/work 目錄下再次解壓。
②在Ubuntu 下的解壓內核并編譯,命令為:
tar xzf linux-3.0.86-20150324.tgz
cd linux-3.0.86/
cp tiny4412_android_defconfig .config
make zImage
③在Ubuntu 下的解壓Android 文件系統,命令為:
tar xzf android-5.0.2-fs-20150325.tar.gz
注意:在解壓得到android-5.0.2 目錄后,建議把android-5.0.2-fs-20150325.tar.gz 刪掉以防空間不足。
④編譯Android 系統
a.進入上述解壓得到的android-5.0.2,執行以下命令(注意:“.”號后有一個空格):
. setenv
b.再執行“lunch”命令,輸入“full_tiny4412-eng”前的數字標號,如下所示:
$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. full_tiny4412-userdebug
8. full_tiny4412-eng
9. aosp_mako-userdebug
10. aosp_hammerhead-userdebug
11. aosp_tilapia-userdebug
12. aosp_grouper-userdebug
13. aosp_deb-userdebug
14. full_fugu-userdebug
15. aosp_fugu-userdebug
16. aosp_flo-userdebug
17. aosp_shamu-userdebug
18. aosp_manta-userdebug
19. mini_emulator_mips-userdebug
20. mini_emulator_x86_64-userdebug
21. mini_emulator_arm64-userdebug
22. m_e_arm-userdebug
23. mini_emulator_x86-userdebug
Which would you like? [aosp_arm-eng] 8???????????//輸入8,表示生成版本full_tiny4412-eng,tiny4412工程機
c.接著執行“make”命令開始編譯,也可以在make 后加上“-j”參數利用CPU 的多核加快編譯速度,比如在4 核CPU 上可以執行“make –j4”。
注意:編譯過程可能持續4、5 個小時。
d.執行以下命令生成映象文件:
./gen-img.sh
注意:如果提示如下錯誤,要先編譯u-boot 以得到mkimage 工具,方法見后。
./gen-img.sh: line 31: mkimage: command not found
編譯u-boot 以得到mkimage 工具的方法:
tar xzf uboot_tiny4412-20130729.tgz
cd uboot_tiny4412/
make tiny4412_config
make
sudo cp tools/mkimage /usr/bin/
sudo chmod 777 /usr/bin/mkimage
運行結果:
book@book-virtual-machine:/work/tiny4412/android-5.0.2$ ./gen-img.sh
Creating filesystem with parameters:
Size: 629145600
Block size: 4096
Blocks per group: 32768
Inodes per group: 7680
Inode size: 256
Journal blocks: 2400
Label:
Blocks: 153600
Block groups: 5
Reserved block group size: 39
Created filesystem with 1943/38400 inodes and 137316/153600 blocks
Creating filesystem with parameters:
Size: 2149580800
Block size: 4096
Blocks per group: 32768
Inodes per group: 7728
Inode size: 256
Journal blocks: 8200
Label:
Blocks: 524800
Block groups: 17
Reserved block group size: 135
Created filesystem with 18/131376 inodes and 17347/524800 blocks
Creating filesystem with parameters:
Size: 4299161600
Block size: 4096
Blocks per group: 32768
Inodes per group: 7952
Inode size: 256
Journal blocks: 16400
Label:
Blocks: 1049600
Block groups: 33
Reserved block group size: 263
Created filesystem with 18/262416 inodes and 35067/1049600 blocks
Creating filesystem with parameters:
Size: 10485760000
Block size: 4096
Blocks per group: 32768
Inodes per group: 8112
Inode size: 256
Journal blocks: 32768
Label:
Blocks: 2560000
Block groups: 79
Reserved block group size: 631
Created filesystem with 18/640848 inodes and 78756/2560000 blocks
Image Name:???ramdisk
Created:??????Mon Nov 14 10:40:26 2016
Image Type:???ARM Linux RAMDisk Image (uncompressed)
Data Size:????720530 Bytes = 703.64 kB = 0.69 MB
Load Address: 40800000
Entry Point:??40800000
即可生成ramdisk-u.img、system.img、userdata.img等映像文件。
⑤編譯Android源碼生成Android Studio所使用的索引文件:
a.進入Android 源碼根目錄執行:
mmm development/tools/idegen/
這行命令的意思是編譯idegen這個項目,生成idegen.jar文件.生成成功后,會顯示這個jar包的位置,并顯示
#### make completed successfully (6 seconds) ####
注意:如果執行mmm命令出現“No command 'mmm' found”,則需要參考博文“No command 'mmm' found”解決,即使用m、mm、mmm命令之前要在android源碼目錄下執行命令:
. build/envsetup.sh
b.生成索引文件:
sh ./development/tools/idegen/idegen.sh
這行命令的意思是生成對應的文件:android.iws, android.ipr, android.iml .如果生成失敗,后面也會講到這種情況.
執行第二個命令的時候,碰到下面的問題:
Exception in thread "main"
at
at
at
at Configuration.parsePackageName(Configuration.
at Configuration.rootOf(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.traverse(Configuration.
at Configuration.(Configuration.
at Main.main(Main.
解決辦法是將
./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.java
修改為:
./out/target/product/hammerhead/obj/GYP/shared_intermediates/res.j
即可.
注意:參照Android源碼目錄并未找到該目錄,查找以后發現目錄已經變更為:
android-5.0.2/out/target/product/tiny4412/obj/GYP/shared_intermediates
于是執行以下命令:
sudo mv ./out/target/product/tiny4412/obj/GYP/shared_intermediates/res.java ./out/target/product/tiny4412/obj/GYP/shared_intermediates/res.j
再返回執行“b.生成索引文件”,得到:android.iml、android.ipr
⑥使用Android Studio查看Android源碼:
生成對應的文件后,打開Android Studio,選擇打開一個現有的Android Studio項目,選擇Android源碼的根目錄,導入即可(起作用的是android.irp文件).在配置sdk版本之后就可以查看Android 源碼了.
總結
以上是生活随笔為你收集整理的electron android编译,Tiny4412_Android编译步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 锦州哪家计算机学校好,锦州十大排名中专
- 下一篇: Android在UI线程访问数据库,An