文章目录:
- 1、如何获取android源代码
- 2、怎样着手研究 Android 源代码
- 3、有没有适合 Android 开发初学者的 App 源码推荐
- 4、求android源码下载地址,就像学学源码的原理
- 5、android项目源码下载
如何获取android源代码
当前的Android 代码托管在两个方: 和 之前在 android.git.kernel.org 上也有托管,不过现在重定向到了 好在都支持git访问。
google 提供的 repo 工具实际上是一个内部操作git工具来简化操作Android源码的Python脚本。经过尝试,直接使用git 工具在ubuntu 下可以实现clone Android 源码。下面介绍一下方法:
1. 获取当前的在github 上托管的Android git repositories:
github页面为: 。不过这个页面不支持通过 wget "" 或者 curl "" 的方式访问, 错误信息如下:
这样一来,获取这个页面内容并解析出其中的git repositories就需要手工完成了。好在方法也很简单: 浏览器中打开这个页面,然后"查看源文件"并保存为文本文件,比如保存为"android_git.html"。最后,通过下面的一行脚本来取出 Android git repositories.
grep -o "span class=\"repo\".*/span" ./android_git.html | cut -d "" -f2 | cut -d "" -f1 android_git.txt
2. 基于第1步获取的Android git repositories 来生成clone git的脚本:
执行如下的一行awk脚本
awk 'BEGIN{i=1; print "#!/usr/bin/env b.sh" }{ print "\n\necho \"begin clone android git ["i"]: " $1 "\""; print "git clone
" $1 ".git"; print "echo \"finish clone android git ["i"]: " $1 "\"" ; i=i+1; }' ./android_git.txt
git_clone_android.sh
现在用于clone android git的脚本生成好了,一共有 103 个 git repository.
3. 执行git_clone_android.sh这个脚本即可。
整体Android 源码的代码量是相当庞大,完成所有的clone 任务后,大概占用了 7G 磁盘空间,历时20多个小时,这是在网速比较快的情况下达到的效果:
其间也有许多问题,比如多次出现如下的错误:
这个时候需能做的只能是"try again"了。
需要说明的是"不要试图同时并发执行多个git clone 命令",这样会导致大量出现上面贴图中的错误,另外,整个clone过程中耗时最多的git repository 如下:
kernel_common.git kernel_msm.git platform_frameworks_base.git platform_prebuilt.git 其中 platform_prebuilt.git 是google 提供的预编译好的二进制文件,包含: 各种库文件,jar 包,可执行程序等等,如果只是阅读Android 源代码,这个git repository 可以不用clone.
怎样着手研究 Android 源代码
一、源码里的工程需要导入所有的Android源码,不可以单独作为一个Android工程导入到Eclipse里。
二、使用git和repo下载Android的源代码,参考如下步骤
以下操作都是在Ubuntu10.04LTS下完成:
1)安装git
sudo apt-get install git-core
2)安装curl
sudo apt-get install git-core curl
3)安装Repo,为了方便直接下载repo到用户根目录中。通过curl下载repo
curl ~/repo
4)给repo可执行的权限
chmod a+x ~/repo
5)新建一个目录,然后进入该目录。通过repo将当前Android上所有源代码下载。
首先初始化本地,
~/repo init -u git://android.git.kernel.org/platform/manifest.git
看到repo initialized in /android的提示后,则证明初始化完毕。成功后会在~/android下生成.repo文件夹
执行
repo sync
则自动开始下载源代码。git支持断点续传,如果中断了下次可继续。
单独下载内核,用这个
git clone git://android.git.kernel.org/kernel/linux-2.6.git
如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,比如:
repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
另一种情况是,我们只需要某一个project的代码,比如kernel/common,就不需要repo了,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
有没有适合 Android 开发初学者的 App 源码推荐
首先介绍 iosched这个项目,google/iosched · GitHub 。
iosched项目是Google I/O的官方app,不仅仅是一个学习的demo,这是一个真正开源的线上项目。
第二个推荐的就是topeka项目 googlesamples/android-topeka · GitHub 。
这个项目是Google前几天刚发出来,用来展示如何将MaterialDesign应用到你的app中,以达到最佳设计和交互效果。通过这个app,你还可以学到如何设计你app的交互和视觉以更好的和MaterialDesign搭配。
求android源码下载地址,就像学学源码的原理
Google刚刚公布,稳定版的Android源代码已经公布,任何人都可以免费下载。Google希望通过公布源代码,电信运营商和手机制造商,乃至一般开发者们进一步深刻了解和利用Android系统,从而有益于该平台下的的发展。
看来T-Mobile G1不一定打得过iPhone,那么Android呢?
现在源代码公布在,SDK网站是
android项目源码下载
对于读项目源代码来说,可能对大多数人是件困难的事。首先,第一个障碍:看到项目,就已经放弃! 如果有十个人,可能有5个人以上会是上面这种情况,分析其想法:这么多的代码,我要怎么读啊!我要读好久啊!算了,还是看小Demo吧,所以这样,他们也就只是把这个项目导入到eclipse中,点了几下鼠标,然后就没有下文了。 解决办法:其实他们终止的原因很简单,就是嫌麻烦,那好吧,告诉你,这点麻烦都能对你造成影响,其实你的开发之路也可以终止了。任何东西,你要学到它,你就必须花时间、花精力、还要有面对困难的准备。想一步登天,有可能,除非你是天才,但毕竟天才太少了!对于开发,不是学习1+1,所以,先摆正心态吧,那要具备怎样的心态呢?那就是:有面对困难的准备,也有解决苦难的信心。 心态问题解决了,那就是读代码的技巧了,很多人拿到一个项目不知道怎么入手,干脆就胡乱的一通看,看到一定时候发现,实在进行不下去了,又开始重新梳理自己的思路。这样是很浪费时间的,其实对于读一个项目,最好按照以下步骤进行( 个人意见,仅供参考 ): 1、使用这个应用或者游戏,直到熟悉它的使用流程和功能 2、根据自己的体验分析代码实现(整体) 3、如果有条件和原作者请教项目思路 4、从最先启动的Activity开始,弄懂每个Activity功能如何实现以及它的布局实现 5、遇到不懂的代码,首先找搜索引擎(一般都能解决)。还不行就可以请教他人了 6、对新学到的知识点,一定要总结下来,并且定期的去回顾 7、最重要的一点: 我认为要自己动手写,那怕是重新写一遍这个项目,或者自己设计一个类似的,再或者只写这个项目中的一部分。 为什么要自己动手呢?大家都知道coder这个东西,那怕你理论学得再好,不动手,那也是毫无意义的!所以,动手写一下,你会遇到问题,你就会解决问题,这样,你才能学到更多。这就是经验·······
以上回答你满意么?
+1,所以,先摆正心态吧,那要具备怎样的心态呢?那就是:有面对困难的准备,也有解决苦难的信心。 心态问题解决了,那就是读代码的技巧了,很多人拿到一个项目不知道怎么入手,干脆就
文章目录:1、如何获取android源代码2、怎样着手研究 Android 源代码3、有没有适合 Android 开发初学者的 App 源码推荐4、求android源码下载地
入到Eclipse里。二、使用git和repo下载Android的源代码,参考如下步骤以下操作都是在Ubuntu10.04LTS下完成:1)安装gitsudo apt-get install git-core2)安装cu
们终止的原因很简单,就是嫌麻烦,那好吧,告诉你,这点麻烦都能对你造成影响,其实你的开发之路也可以终止了。任何东西,你要学到它,你就必须花时间、花精力、还要有面对困难的准备。想一步登天,有可能,除非你是天才
t repositories 来生成clone git的脚本:执行如下的一行awk脚本awk 'BEGIN{i=1; print "#!/usr/bin/env b.sh" }{ print "\n\necho \"begin clone android git ["i"]: