a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 66|回复: 0

[综合辅导] Linux认证辅导Android代码结构深入剖析

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
Linux认证辅导Android代码结构深入剖析
- F" P% n7 {7 L当我们在对Android操作系统进行编程后,会产生一个结构严密的Android代码结构,那么大家可以从这篇文章中对这一结构进行详细的分析,以此为参考,来加深大家对这一操作系统的认识,方便大家今后的开发。
3 I- n1 L) ]- ~6 n" oAndroid编译完成后,将在根目录中生成一个out文件夹,所有生成的Android代码结构内容均放置在这个文件夹中。out文件夹如下所示:/ @; G3 T7 N& K1 _4 E* _6 [5 l# C
1.out/
) t, H( s" U# \$ y- `' d# C2.-- CaseCheck.txt  I& |! N" o; ~  h& d3 X; @1 h1 g
3.-- casecheck.txt
! ^7 o0 w4 U+ S+ B; U4.-- host$ P2 G% N1 h+ q0 W) x0 b' Z
5. -- common* c7 ~( ]/ @5 D. a6 O
6. -- linux-x86& ?: W# z3 N( P
7.-- target2 e3 {. }2 |# E* K' g3 f% _
8. -- common1 L, X  ]( o0 A$ ^/ L
9. -- product# b- e* g0 d1 h
主要的两个目录为host和target,前者表示在主机(x86)生成的工具,后者表示目标机(默认为armv5)运行的内容。) a8 t7 U# r0 H5 `! ^
host目录的结构如下所示:+ d+ M0 U' y7 G4 O% R, n1 ^
1.out/host/
" h1 ?9 ]& w, V2. -- common
) z" M! w  }# M: |: S! a3. -- obj (JAVA库)9 R% h; E9 R& s( L' ~  P. F+ F
4. -- linux-x86
: L# r; C' P/ T7 c0 I# q& A0 f5. -- bin (二进制程序). ]1 Q% }9 k0 }6 v& ~2 X# l' c
6. -- framework (JAVA库,*.jar文件)' ]' E) B/ a+ Y
7. -- lib (共享库*.so)6 n; ]+ T7 f7 n* V: u
8. -- obj (中间生成的目标文件)! ^* ?0 Y5 X7 j& ~, A
host目录是一些在主机上用的工具,有一些是二进制程序,有一些是JAVA的程序。
( K. n: P3 P& a& y: b- Gtarget目录的Android代码结构如下所示:
7 u5 b7 u' v: W! `" R1.out/target/$ l6 E7 K9 L5 s& q
2.-- common  W: E1 |2 x3 i' v, k/ E
3.-- R (资源文件)1 @' _4 r4 `: f+ Q. k# h/ K
4.-- docs8 }) o  @- \" O9 h. I# ?
5.-- obj (目标文件)
0 O" p6 _% T4 P. L2 x* {4 T6.-- product
9 W4 D4 U5 U, v# m/ y) f7. -- generic' _0 a8 T, U  ]* {% D+ f1 L( A
其中common目录表示通用的内容,product中则是针对产品的内容。
: {) y. {" z9 K5 }& d8 R. b  P7 h

+ l, G2 V+ b: V, Z在common目录的obj中,包含两个主要的目录:
- M( Q% o* a! H8 o* [1 e) SAPPS 中包含了JAVA使用程序生成的目标,每个使用程序对应其中一个子目录,将结合每个使用程序的原始文件生成Android使用程序的APK包。, E& c. |# z$ }6 O( L! ^
JAVA_LIBRARIES 中包含了JAVA的库,每个库对应其中一个子目录。( l% d; i4 y+ U9 R
在默认的情况下,Android编译将生成generic目录,如果选定产品还可以生成其他的目录。generic包含了以下内容:. y6 w- _* F, l3 A; d& T, `! c% n% `
1.out/target/product/generic/, R6 b8 G  u% H* G; T* I$ R
2.-- android-info.txt' R) [" m' b8 h/ I
3.-- clean_steps.mk9 ^7 q4 q; o3 S7 C/ l% C3 _( P
4.-- data, V5 X0 P5 k& |4 z5 r( g: @( H- s
5.-- obj2 Z; ]. K5 u) Q: k' B1 G' R* G2 r
6.-- ramdisk.img
; E% l* \) V* E7.-- root  l, h6 H" t) a& ]0 \1 m
8.-- symbols7 W6 P" a& C$ s4 X6 z9 ^6 @
9.-- system% |& V0 G: z7 F- x- t9 |
10.-- system.img
8 j8 G  ?$ ]) [( T+ S6 x: R11.-- userdata-qemu.img
2 L+ G; o# X1 J/ b12.-- userdata.img
+ @) f% c* `: R7 }; L7 x$ i. o2 m2 o在generic/obj/APPS目录中包含了各种JAVA使用,与common/APPS相对应,但是已经打成了APK包。
$ D# `7 D5 R9 m8 `system目录是主要的文件系统,data目录是存放数据的文件系统。6 k4 F7 w$ k2 n5 X+ r" ^; r
obj/SHARED_LIBRARIES中存放所有动态库。
9 Q& u6 \3 T  i$ X- Uobj/STATIC_LIBRARIES中存放所有静态库。
7 ^2 N# L  ?" x8 `多个以img为结尾的文件是多个目标映像文件,其中ramdisk是作为内存盘的根文件系统映像,system.img是主要文件系统的映像,这是一个比较大的文件,data.img是数据内容映像。这多个image文件是模拟器运行时真实需要的文件。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 13:22 , Processed in 0.147702 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表