在我们开发android程序过程中,很多时候 需要查看android的源码是如何实现的。这个时候就需要把android的源码加入到 eclipse中,那么在我们通过Git和repo获取到android源码之后,就需要把java文件提取出来,并放到android SDK子目录source下。如果手工来提取这些java文件是很耗费时间的,所以我们可以写个python脚本来自动提取android源码中的java文件,如下:

from __future__ import with_statement # for Python < 2.6


import os
import re
import zipfile

# open a zip file
DST_FILE = 'sources.zip'
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:
# 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()

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Android(安卓)preference与ActivityGroup UI更新
  6. Android入门教程(十三)之自定义下拉菜单模式----Spinner与setDro
  7. Google Android如何分析和研究Log文件 ,如何看日志信息
  8. Android(安卓)UI 的几个简单技巧
  9. 一定要看的 Android(安卓)资源目录的相关知识 raw drwable value

随机推荐

  1. Android(安卓)的 MVVM 之 LiveData源码研
  2. android chrome iframe设置src属性无法启
  3. Android(安卓)中文api,Debug签名证书过期(E
  4. imageView 的 android:maxHeight,maxWidt
  5. Android(安卓)平滑和立体翻页效果2
  6. android JNI 调用
  7. Android(安卓)NDK 开发(笔记一)
  8. Drawable资源
  9. [Android] Activity页面切换效果
  10. [置顶] android studio导入项目后出现can