首页
社区
课程
招聘
[讨论]自由行, 游览 Android 的官方源码
2011-6-29 17:10 20308

[讨论]自由行, 游览 Android 的官方源码

2011-6-29 17:10
20308
自由行, 游览 Android 的官方源码

初学者或许会问到 :
"编写软件,需要了解 android 源码吗 ?  我需要了解 android 内部的运作吗 ?"

其实一般的 app,只需要使用普通 java 便可以编写完成

可是你会渐渐发现,别人的 app,总是做到了某些特别的功能,那些优秀的功能,都不是使用一般方法便可以做到的

因为android 软件使用 java 平台的关系,我们可以使用 java 的 reflection 来进行 java 对象的深入操作,使用官方 SDK 没有公开的功能,做到更多效果

经过 google 查了一下,你便会发现,了解 android 源码设计,会使你了解 android 更多

这个帖是集中讨论阅读源码,这里使用网上 git 来提供参考 (当然鼓励大家用 git 把整份源码下载到 pc 上)

如果大家有甚么问题或发现,欢迎讨论

网上git 查看 android 源码的方法 :

http://android.git.kernel.org/

这里是 android project 的源码,假如你想查看某一个目录,只需要在那一行,按 tree,便会打开

eg:

系统架构 :
platform/frameworks/base.git

按 tree 打开

drwxr-xr-x         -         api         tree | history
drwxr-xr-x         -         build         tree | history
drwxr-xr-x         -         cmds         tree | history
drwxr-xr-x         -         core         tree | history
drwxr-xr-x         -         data         tree | history
drwxr-xr-x         -         docs         tree | history
drwxr-xr-x         -         drm         tree | history
drwxr-xr-x         -         graphics         tree | history
drwxr-xr-x         -         include         tree | history
drwxr-xr-x         -         keystore         tree | history
drwxr-xr-x         -         libs         tree | history
drwxr-xr-x         -         location         tree | history
drwxr-xr-x         -         media         tree | history

我们假如对 android 的 "Bitmap" 这个class 有兴趣,便前往

graphics  (按 tree)

drwxr-xr-x                   ..        
drwxr-xr-x         -         java         tree | history
drwxr-xr-x         -         jni         tree | history
drwxr-xr-x         -         tests         tree | history

然后,继续进入 -> java -> android -> graphics

(完整位置 : [platform/frameworks/base.git] / graphics / java / android / graphics / )

便会看见

-rw-r--r--         2388         AvoidXfermode.java         blob | history | raw
-rwxr-xr-x         676         Bitmap.aidl         blob | history | raw
-rw-r--r--         42136         Bitmap.java         blob | history | raw
-rw-r--r--         25562         BitmapFactory.java         blob | history | raw
-rw-r--r--         11435         BitmapRegionDecoder.java         blob | history | raw
-rw-r--r--         1542         BitmapShader.java         blob | history | raw
-rw-r--r--         1783         BlurMaskFilter.java         blob | history | raw
-rw-r--r--         1594         Camera.java         blob | history | raw

打开 Bitmap.java ,便可以看到 Bitmap 的设计了

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (11)
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loongboy 2011-11-22 11:40
2
0
“因为android 软件使用 java 平台的关系,我们可以使用 java 的 reflection 来进行 java 对象的深入操作,使用官方 SDK 没有公开的功能,做到更多效果”
留念下。。
雪    币: 114
活跃值: (81)
能力值: (RANK:60 )
在线值:
发帖
回帖
粉丝
沙加L 1 2011-12-1 21:39
3
0
最好在Linux环境下查看源代码,这也是官方所推荐的。
我是装了一个虚拟机,硬盘50G,Ubuntu,64位,下载代码,在虚拟机里面查看代码,编译等等!
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sbppp 2012-1-3 09:29
4
0
我是做个虚拟机,可以LINX。。不会安软件。XP下倒是组建环境了。可又不会开发。
本就是新手。。来发表下
雪    币: 268
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
永夜极光 2012-3-16 14:23
5
0
从没接触过安卓 现在要用安卓来开发毕业设计程序 真是蛋疼啊
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靖翼 2012-4-11 06:53
6
0
java基础不好的表示鸭梨好大呀。
雪    币: 438
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
superyong 2013-1-7 10:38
7
0
我是用fedora来下载编译查看源码,发现不错!!!
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zozerooo 2013-2-2 08:40
8
0
表示同感,java用得少,工作上只用到C语言
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
破军 2013-3-4 19:43
9
0
kernel 部分的代码还是在linux 下看,
其他的可以在windows下看得
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
喜爱秦朝 2013-8-28 14:15
10
0
新手,各位大牛有linux 环境下部署开发环境的文档吗?
雪    币: 192
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
iigx 2013-9-10 14:51
11
0
只有C/C++基础的表示看一个星期书就可以开发android程序了
雪    币: 3524
活跃值: (700)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
YoHooo 2013-10-1 22:57
12
0
安装官网方法 每次都下载不了。。而且还那么大。。真心无奈
游客
登录 | 注册 方可回帖
返回