赞
踩
chmod a+x ~/bin/repo
接下来我们就可以利用repo脚本和Git、curl软件获取Android的源代码了:)
首先建一个目录,比如~/Android。
然后使用下面命令获取源码:
repo init –u git://Android.git.kernel.org/platform/manifest.git
这个过程会持续很长的时间 (笔者下载了一天),下载完毕后会看到repo initialized in /Android这样的提示,说明本地的版本库已经初始化完毕,并且包含了当前最新的sourcecode。
如果我们想拿某个分支版本的代码,而不是主线代码,需要使用-b参数指定branch的名字,比如:
repo init –u https://android.googlesource.com/platform/manifest –b android-2.1_r2
如果我们只是想获取某一个project的代码,比如kernel/common,就不需要repo脚本了,直接使用Git工具即可,如果仔细研究 repo脚本会发现,repo脚本其实就是组织Git工具去获取各个Project并把它们组织到同一个项目Android内。
git clone https://android.googlesource.com/platform/manifest
我们上面使用repo脚本获取了各个项目,那么接下来就需要把整个Android代码树同步到本地,如下:
repo sync project1 project2 …
笔者使用repo sync命令直接同步全部项目到本地。
如果期间出现这个错误:
Exception in thread Thread-3:
Traceback (most recent call last):
File “/usr/lib/python2.6/threading.py”, line 532, in __bootstrap_inner
self.run()
File “/usr/lib/python2.6/threading.py”, line 484, in run
self.__target(*self.__args, **self.__kwargs)
File “/home/haili/android-4.0.4_r1.2/.repo/repo/subcmds/sync.py”, line 200, in _FetchHelper
clone_bundle=not opt.no_clone_bundle)
File “/home/haili/android-4.0.4_r1.2/.repo/repo/project.py”, line 978, in Sync_NetworkHalf
and self._ApplyCloneBundle(initial=is_new, quiet=quiet):
File “/home/haili/android-4.0.4_r1.2/.repo/repo/project.py”, line 1519, in _ApplyCloneBundle
exist_dst = self._FetchBundle(bundle_url, bundle_tmp, bundle_dst, quiet)
File “/home/haili/android-4.0.4_r1.2/.repo/repo/project.py”, line 1583, in _FetchBundle
raise DownloadError('%s: %s ’ % (req.get_host(), str(e)))
DownloadError: android.googlesource.com: <urlopen error [Errno 110] Connection timed out>
…
请查看 解决下载Android源码时遇到的问题 这篇文章
二、源码编译
全部同步完毕后,进入到Android目录下,使用make命令编译,你会发现出现如下错误提示:
host C: libneo_cgi
这个错误是因为我们缺少zlib1g-dev,需要使用apt-get命令从软件仓库中安装,如下:
sudo apt-get install zlib1g-dev
同理,我们还需要依次安装如下软件
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install gperf
sudo apt-get install libsdl-dev
sudo apt-get install libesd0-dev
sudo apt-get install libncurses5-dev
sudo apt-get install libx11-dev
以上软件全部安装完毕后,运行make命令再次编译Android源码。
这个时候你会发现出现很多java文件无法编译的错误,打开Android的源码我们可以看到在android/dalvik/libcore/dom /src/test/java/org/w3c/domts下有很多java源文件,这意味着编译Android之前需要先安装JDK。
首先从sun官方 网站下载jdk-6u16-linux-i586.bin文件并安装它。
在Ubuntu8.04中,/etc/profile文件是全局的环境变量配置文件,它适用于所有的shell。在我们登陆Linux系统时,首先启动 /etc/profile文件,然后再启动用户目录下的/.bash_profile、/.bash_login或/.profile文件中的其中一个,执行的顺序和上面的排序一样。如果/.bash_profile文件存在的话,一般还会执行~/.bashrc文件。
所以我们只需要把JDK的目录放到/etc/profile里即可,如下:
JAVA_HOME=/usr/local/src/jdk1.6.0_16
PATH= P A T H : PATH: PATH:JAVA_HOME/bin:/usr/local/src/Android-sdk-linux_x86-1.1_r1/tools:~/bin
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
【Android 详细知识点思维脑图(技能树)】
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在GitHub:Android架构视频+BAT面试专题PDF+学习笔记
的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
[外链图片转存中…(img-R43GQJCb-1710673258608)]
详细整理在GitHub:Android架构视频+BAT面试专题PDF+学习笔记
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。