内容简介:因为公司相关售前的原因,需要研究一下 Android Studio 的架构及其原理。便需要 clone 一下代码, 编译一下它,并研究它是如何编译的。总体过程还是非常不顺利的,以至于最后没有在 4.0 上编译成功,只在 3.0 上编译成功。这一步就比较简单了,按官方的教程来:《
因为公司相关售前的原因,需要研究一下 Android Studio 的架构及其原理。便需要 clone 一下代码, 编译一下它,并研究它是如何编译的。
总体过程还是非常不顺利的,以至于最后没有在 4.0 上编译成功,只在 3.0 上编译成功。
1. Clone 代码
这一步就比较简单了,按官方的教程来:《 Checkout and build the source code 》
$ mkdir studio-master-dev $ cd studio-master-dev $ repo init -u https://android.googlesource.com/platform/manifest -b studio-master-dev $ repo sync -c -j4 -q
不得不说 Android Studio 相关的代码还是蛮大的,大概花了一天的时间 clone。clone 完后,大概占了我 60 G 的存储空间。
FAQ
编译
在《 Android Studio Release Process 》 中记录了如何解决部分 Google 相关的 Vendor 缺少的解决方案
从代码库中删除所有的:tools/vendor/google
示例:https://android.googlesource.com/platform/tools/idea/+/refs/heads/studio-master-dev/RELEASE.md
--- a/bazel/toplevel.WORKSPACE +++ b/bazel/toplevel.WORKSPACE @@ -1,13 +1,6 @@ load("//tools/base/bazel:repositories.bzl", "setup_external_repositories") setup_external_repositories() -local_repository( - name = "blaze", - path = "tools/vendor/google3/blaze", -) -load("@blaze//:binds.bzl", "blaze_binds") -blaze_binds() - http_archive( name = "bazel_toolchains", urls = [
SDK 或者 NDK 找不到
ln -s ~/Library/Android/sdk/ /Users/fdhuang/jvm/studio-master-dev/prebuilts/studio/sdk/darwin ln -s ~/sdk/android-ndk-r20/ /Users/fdhuang/jvm/studio-master-dev/prebuilts/studio/sdk/darwin/ndk-bundle
armeabi 问题
[exec] ERROR: /private/var/tmp/_bazel_fdhuang/0711c902f818b6dd779b715988db0de0/external/androidndk/BUILD.bazel:41:1: in cc_toolchain_suite rule @androidndk//:toolchain-libcpp: cc_toolchain_suite '@androidndk//:toolchain-libcpp' does not contain a toolchain for cpu 'armeabi'
打开,复制粘贴
'armeabi': ':arm-linux-androideabi-clang8.0.7-v7a-libcpp',
删除 DS_Store
ref_id = fd.readline() File "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/codecs.py", line 322, in decode (result, consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 3131: invalid start byte
find . -name ".DS_Store" -delete
编译 4.0 失败
不过,最后你还是不会成功的,因为缺少了 NDK 相关的东西:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Web Designer's Idea Book
Patrick Mcneil / How / 2008-10-6 / USD 25.00
The Web Designer's Idea Book includes more than 700 websites arranged thematically, so you can find inspiration for layout, color, style and more. Author Patrick McNeil has cataloged more than 5,000 s......一起来看看 《The Web Designer's Idea Book》 这本书的介绍吧!