1.编译Android 5.1.1_r38
源代码
参考链接:
macOS Sierra (10.12.3)上编译ARM版本Android 5.1.1_r38 (Lollipop)源代码
2.调整Android Studio
的属性
默认情况下,macOS
的磁盘分区文件名是不区分大小写的,但是我们编译的Android 5.1.1_r38
源代码却是在新建的一个区分大小写的分区上的,因此需要临时要求Android Studio
区分文件名的大小写。
1 |
$ vim ~/Library/Preferences/AndroidStudio2.2/idea.properties |
在其中增加
1 |
idea.case.sensitive.fs=true |
3. 编译Android SDK
Android SDK
我们需要自己编译。注意,此时磁盘空间可能已经不足了,我们首先增大一下磁盘空间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ hdiutil detach /Volumes/android $ hdiutil resize -size 100G ~/Android/android.dmg.sparseimage $ hdiutil attach ~/Android/android.dmg.sparseimage -mountpoint /Volumes/android $ export JAVA_HOME=$(/usr/libexec/java_home -v 1.7) $ cd /Volumes/android $ cd Android_Source $ source build/envsetup.sh $ lunch sdk-eng $ export TARGET_BUILD_TYPE=debug |
由于我们修改了TARGET_BUILD_TYPE
,因此需要调整代码
1 |
$ vim ./development/build/sdk.atree |
全部替换里面的${OUT_DIR}/target
为${OUT_DIR}/debug/target
。
编译代码
1 |
$ make sdk -j8 |
编译好的文件在out/host/darwin-x86/sdk/sdk
目录下面。
4.生成工程文件
工程目录与编译目录相同
1 2 3 4 5 6 7 8 9 |
$ cd /Volumes/android $ cd Android_Source $ mmm development/tools/idegen/ $ ./development/tools/idegen/idegen.sh $ rm -rf .classpath |
编译完成后,在/Volumes/android
目录下,生成android.ipr
,然后用Android Studio 2.2.3
导入已经存在的项目即可,导入后,需要比较长时间建立索引,要耐心等待。
导入完成后,根据错误提示,设置JDK
为我们编译内核时候的JDK
,设置Android SDK
为我们刚刚编译的版本即可。
File
->Project Structure
->Project Settings
->Project
->Project SDK
中设置JDK
版本。
File
->Project Structure
->Project Settings
->Modules
->android
->Dependencies
中设置Android SDK
路径以及版本。