`

自制android1.5的源码包

阅读更多

最近打算玩下android,听hong老大说最好看看源码。而android官方并没有提供直接可用的。

具体参考如下:
http://www.williamhua.com/2009/04/29/git-and-repo-for-dummies/
http://blog.michael-forster.de/2008/12/view-android-source-code-in-eclipse.html

注意:在做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代码 复制代码
  1. from __future__ import with_statement  # for Python < 2.6   
  2.   
  3. import os   
  4. import re   
  5. import zipfile   
  6.   
  7. # open a zip file   
  8. DST_FILE = 'sources.zip'  
  9. CLASS_FILE_PATH = '/home/don/desktop/android/'  
  10. if os.path.exists(DST_FILE):   
  11.   print DST_FILE, "already exists"  
  12.   exit(1)   
  13. zip = zipfile.ZipFile(DST_FILE, 'w', zipfile.ZIP_DEFLATED)   
  14.   
  15. # some files are duplicated, copy them only once   
  16. written = {}   
  17.   
  18. # iterate over all Java files   
  19. for dir, subdirs, files in os.walk('.'):   
  20.   for file in files:   
  21.     if file.endswith('.java'):   
  22.       # search package name   
  23.       path = os.path.join(dir, file)   
  24.       with open(path) as f:   
  25.         for line in f:   
  26.           match = re.match(r'\s*package\s+([a-zA-Z0-9\._]+);', line)   
  27.           if match and os.path.exists(CLASS_FILE_PATH + match.group(1).replace('.''/') + '/' + file[0:-4] + 'class'):   
  28.             # copy source into the zip file using the package as path   
  29.             zippath = match.group(1).replace('.''/') + '/' + file   
  30.             if zippath not in written:   
  31.               written[zippath] = 1  
  32.               zip.write(path, zippath)   
  33.             break;   
  34. 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就可以用了。

 

我把android1.5的源码包放附件里了,省得大家再做了。

分享到:
评论

相关推荐

    android 自制闹钟源码

    以下将详细解析“android 自制闹钟源码”的相关知识点。 1. **BroadcastReceiver**: Android系统中的闹钟功能通常基于BroadcastReceiver。BroadcastReceiver是Android四大组件之一,用于接收和处理系统或应用程序...

    Android 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包括图片,语音 自制Shape

    Android 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包括图片,...仿QQ 人员列表,聊天的实现,包括图片,语音 自制ShapeAndroid 源码开源 Expandablelistview实现,仿QQ 人员列表,聊天的实现,包

    自制android带闹钟功能的记事本源码

    总的来说,这款“自制android带闹钟功能的记事本源码”是一个综合性的Android应用开发案例,涵盖了数据库操作、定时任务、媒体播放以及数据安全等多个核心知识点,对于学习和提升Android应用开发技能具有很高的参考...

    自制android键盘实现

    在Android平台上,自定义键盘(软键盘)的实现是一个相当有趣且实用的开发任务。它涉及到Android系统的输入法服务(InputMethodService)以及对View体系结构的理解。本篇将深入探讨如何利用Android SDK来创建一个...

    自制操作系统源码

    在“自制操作系统源码”项目中,我们看到作者于渊通过汇编语言和C语言深入学习和实践操作系统的构建过程。这个项目不仅是一个操作系统开发的尝试,更是一个学习和理解操作系统核心概念的平台。 首先,汇编语言在...

    自制android记账工具(源代码),打包程序可以安装到手机上使用

    "自制android记账工具(源代码)" 这个标题表明这是一个个人开发的Android应用程序,专门用于记账。它包含了项目的源代码,意味着用户或学习者可以查看、修改和学习代码,了解如何构建这样的应用。 【描述详解】 ...

    易语言源码易语言自制滚动条源码.rar

    易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制滚动条源码.rar 易语言源码易语言自制...

    自制Android讲座PPT

    自那时起,Android经历了多个版本迭代,从最初的1.1到1.5(Cupcake),再到1.6(Donut),逐步完善了用户体验和功能,吸引了越来越多的开发者和用户。 **Android平台五大优势特色** 1. **开放性**:Android是一个...

    自制Android百度地图

    【自制Android百度地图】 在移动应用开发领域,地图服务是一个不可或缺的部分,特别是在Android平台上,开发者经常需要集成地图功能来提供导航、位置查询等服务。本项目“自制Android百度地图”正是这样一个实现,...

    自制简单小程序1.5.cpp

    自制简单小程序1.5

    自制Android列表Listview

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。自定义ListView可以实现更丰富的界面和交互效果,让应用更具吸引力。本篇文章将详细介绍如何在Android中创建一个自定义的ListView,该列表每...

    基于Android的儿童绘本阅读与收听APP的设计与实现(源码 + 说明文档 + 演示视频)

    基于Android的儿童绘本阅读与收听APP的设计与实现(源码 + 说明文档 + 演示视频) 4.3系统详细实现 24 4.3.1 用户登陆的设计与实现 24 4.3.2个人中心及后台管理 26 4.3.3动态功能 28 4.3.4绘本发布功能 29 4.3.5...

    自制播放器含源码

    【自制播放器含源码】项目是一个基于Delphi 7开发的媒体播放应用程序。这个播放器不仅能够播放mp3音频文件,还支持avi格式的视频播放。此外,它还具有独特的拖放功能,用户可以直接将bmp和jpg图像文件拖入程序进行...

    易语言源码易语言自制MD5源码.rar

    易语言源码易语言自制MD5源码.rar

    易语言源码易语言自制进度条源码.rar

    易语言源码易语言自制进度条源码.rar 易语言源码易语言自制进度条源码.rar 易语言源码易语言自制进度条源码.rar 易语言源码易语言自制进度条源码.rar 易语言源码易语言自制进度条源码.rar 易语言源码易语言自制...

    自制的Android安卓手机音乐播放器的工程源码和apk

    本资源提供了一个自制的Android安卓手机音乐播放器的完整工程源码和apk文件,对于学习Android应用开发,特别是音乐播放器的实现,具有很高的参考价值。 1. **基本架构** Android音乐播放器通常包含以下几个核心...

    自制Mysql5.6源码编译安装包

    这个“自制Mysql5.6源码编译安装包”显然是一个为了简化这一过程而创建的工具。它包含了编译MySQL 5.6所需的所有依赖项,以及一个自动化脚本来帮助在CentOS 6.5服务器上进行安装。 首先,源码编译的优点在于可以...

    Android 自制小游戏集合 猜数和模拟劲舞团钢琴 源码

    这个"Android 自制小游戏集合"涵盖了猜数游戏和模拟劲舞团钢琴两个项目,它们涉及到许多Android开发中的核心知识点,包括数据库管理、动画效果、动态列表以及界面布局设计。下面我们将详细探讨这些关键点。 首先,...

    自制OS的源码

    标题 "自制OS的源码" 提供了一个关于操作系统(OS)开发的主题,特别是指向一个名为 "Haribote OS" 的项目。这个标题暗示了我们将会深入到操作系统的基础构造和编程中,这对于那些对计算机系统底层运作有兴趣或者想...

Global site tag (gtag.js) - Google Analytics