具体参考如下:
http://www.williamhua.com/2009/04/29/git-and-repo-for-dummies/
[url]http://blog.michael-forster.de/2008/12/view-android-source-code-in-eclipse.html [/url]
注意:在做sources.zip的时候不能是用主干来做,要切换到origin/android-sdk-1.5_r3分支下,我是这么做的
$ git checkout origin/android-sdk-1.5_r3 -b sdk1.5r3
否则在debug的时候会定位错误; 今天刚接触这东西,不熟瞎试的,好像还要在.repo/manifest/目录下能执行上面的命令
另外用mike's blog里的python抽取java源文件好像太多了,我稍微修改一下,把android.jar包里面没有的java类都去了。
在自己建的源代码根目录建get_source.py这么个文件:
Python代码
from __future__ import with_statement # for Python < 2.6
import os
import re
import zipfile
# open a zip file
DST_FILE = 'sources.zip'
CLASS_FILE_PATH = '/home/don/desktop/android/'
if os.path.exists(DST_FILE):
print DST_FILE, "already exists"
exit(1)
zip = zipfile.ZipFile(DST_FILE, 'w', zipfile.ZIP_DEFLATED)
# some files are duplicated, copy them only once
written = {}
# iterate over all Java files
for dir, subdirs, files in os.walk('.'):
for file in files:
if file.endswith('.java'):
# search package name
path = os.path.join(dir, file)
with open(path) as f:
for line in f:
match = re.match(r'\s*package\s+([a-zA-Z0-9\._]+);', line)
if match and os.path.exists(CLASS_FILE_PATH + match.group(1).replace('.', '/') + '/' + file[0:-4] + 'class'):
# copy source into the zip file using the package as path
zippath = match.group(1).replace('.', '/') + '/' + file
if zippath not in written:
written[zippath] = 1
zip.write(path, zippath)
break;
zip.close()
from __future__ import with_statement # for Python < 2.6
import os
import re
import zipfile
# open a zip file
DST_FILE = 'sources.zip'
CLASS_FILE_PATH = '/home/don/desktop/android/'
if os.path.exists(DST_FILE):
print DST_FILE, "already exists"
exit(1)
zip = zipfile.ZipFile(DST_FILE, 'w', zipfile.ZIP_DEFLATED)
# some files are duplicated, copy them only once
written = {}
# iterate over all Java files
for dir, subdirs, files in os.walk('.'):
for file in files:
if file.endswith('.java'):
# search package name
path = os.path.join(dir, file)
with open(path) as f:
for line in f:
match = re.match(r'\s*package\s+([a-zA-Z0-9\._]+);', line)
if match and os.path.exists(CLASS_FILE_PATH + match.group(1).replace('.', '/') + '/' + file[0:-4] + 'class'):
# copy source into the zip file using the package as path
zippath = match.group(1).replace('.', '/') + '/' + file
if zippath not in written:
written[zippath] = 1
zip.write(path, zippath)
break;
zip.close()对python不熟,不知道怎么读jar文件,我把android.jar解压到了桌面。运行上面代码就能生成干净的sources.zip了。
将sources.zip解压到 sdk目录下platforms/android-1.5/下即可
android-1.5下会多出一个sources文件,源文件就在里面了,重启eclipse就可以用了。
分享到:
相关推荐
android 自制闹钟源码
Android 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包括图片,...仿QQ 人员列表,聊天的实现,包括图片,语音 自制ShapeAndroid 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包
android的自制键盘模型,可以实现数字和字母等输入有基础运算符,复杂运算的功能没有实现
易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制...
自己做的android小程序练习,包括了记事本功能,记事本加密,记事本闹钟提醒。用到的主要知识有:SQLiteDatabase的使用,闹钟的设置,铃声选择,铃声播放,等等。
于渊 汇编语言编写loader和内核,C语言完善后面的终端、输入输出系统、进程间通信,并非旨在编写可应用的操作系统,更重要的是在自己开发过程中加深理解操作系统基本工作原理。
自制简单小程序1.5
自制播放器含源码,可以播放mp3及avi视频,支持拖入功能,支持bmp和jpg图片拖入浏览,delphi7写成!
易语言源码易语言自制寻找文本源码.rar
易语言源码易语言自制MD5源码.rar
Android自定义列表ListView的使用 每项列表内容包含 图片ImageView + 图片名TextView + 复选框Checkbox 另外:复选框效果自定义
有种瞬间高深莫测的逼格,默认密码是我随意设置,因为个人喜好不同,大多数人都喜欢自己设置密码,更舒服更安全,所以附上工具源码和jar包, jar包可以直接启动,源码可以导入eclipse或者idea更改配置和密码, 搜索关键字 "g...
易语言源码易语言自制进度条源码.rar 易语言源码易语言自制进度条源码.rar 易语言源码易语言自制进度条源码.rar 易语言源码易语言自制进度条源码.rar 易语言源码易语言自制进度条源码.rar 易语言源码易语言自制...
Android 自制小游戏集合 猜数游戏和模拟劲舞团钢琴 源码 里面包含了Android的数据库、动画、动态列表、相对布局等很多技术点 不过代码稍有些乱 见谅
自制杀毒软件C++源码
自制机器人验证源码,仅供学习!
键身打卡App,基于原生Android、Java实现。页面简洁实用,功能齐全,代码注释多。 核心功能:登录注册、个人信息维护、系统设置、搜索、日历键身打卡、健身图文视频教程、收藏评论点赞购买教程、社区分享等。 适用...
基于http协议在传输大文件(>10M)存在一定的问题,且不方便与客户端进行交互,本模块使用socket多线程编程,自定义一个小型的文件上传服务器。
因项目需求,自制一个android拍照程序,带自动对焦功能。
自己制作的android 记账工具,代码简单,非常适合初学者学习