Android:Android应用结构分析
来源:互联网 发布:fpga串口多个数据 编辑:程序博客网 时间:2024/05/16 01:44
一、创建Android项目命令
android create project -n HelloWorld -t 8 -p HelloWorld -k org.crazyit.helloworld -a HelloWorld
create project:手动创建一个Android应用子命令;
-n:指定创建项目名称;
-t:指定项目针对的Android平台;
-p:指定项目的保存路径;
-k:指定该项目的包名;
-a:指定Activity的名称;
二、Android项目结构
Hello World |—libs |—res | |—drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi | |—layout | |—values |—src | |—org |—crazyit |—helloworld |—AndroidManifest.xml
上面的结构目录中res目录、src目录、AndroidManifest.xml文件是Android项目必需的。其它文件都是可选的。 res目录:存放Android项目中的各种资源文件;
layout:存放界面布局文件;
values:存放各种XML格式的资源文件,如Strings.xml,colors.xml,dimens.xml等;
drawable-ldpi、drawable-mdpi、drawable-hdpi和drawable-xhdpi:分别存放低分辨率、中分辨率、高分辨率和超高分辨率的4种图片文件;
src目录:保存Java源文件;
AndroidManifest.xml文件:Android项目的清单文件,控制Android应用的名称、图标、访问权限等属性,配置Activity,Service,ContentProvider,Broadcast四大组件;
bin目录:存放生成的目标文件,如Java二进制文件、资源打包文件(.ap_后缀)等;
gen目录:保存自动生成的、位于Andorid项目包下的R.java文件;
注意:除此之外,还有build.xml文件,这是Android为该项目提供的一个Ant生成文件。通过该文件,开发者可以通过Ant来生成、安装Android项目。
三、R.java文件
R.java文件是由aapt工具根据应用中的资源文件来自动生成的,理解成Android应用的资源字典。
public final class R{ public static final class attr{ } public static final class drawable{ public static final int ic_launcher = 0x7f020000; } public static final class id{ public static final int ok = 0x7f05001; public static final int show = 0x7f05000; } public static final class layout{ public static finla int main=0x7f03000; } }
每类资源对应R类中的一个内部类,如所有布局文件对应layout内部类;
每个具体的资源对应内部类的一个public static final int类型的Field;
四、res目录
Android项目允许分别在Java代码、XML代码中使用资源文件中的资源:
在Java代码中使用资源:R.<资源类型>.<资源名称>;R.string.app_name;
在XML文件中使用资源:@<资源对应的内部类的类名>/<资源项的名称>;@string/app_name;
例外:按如下方式分配标识符:@+id/<标示符代号>。android:id="@+id/ok"为一个组件分配标示符,接下来在应用程序中引用该标示符:
在Java代码中获取该组件:通过findViewById()方法
在XML文件中获取该组件:@id/<标示符代号>
五、AndroidManifest.xml清单文件
<?xml version="1.0" encoding="GBK"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.crazyit.helloworld"<!--包名--> android:versionCode="1" android:versionName="1.0"> <!--应用程序标签,图标--> <application android:label="@string/app_name" android:ico="@drawable/ic_launcher"> <!--应用程序组件--> <activity android:name="HelloWorld" android:label="@string/app_name"> <intent-filter> <!--指定程序入口--> <action android:name="android.intent.action.MAIN"/> <!--指定加载该应用时运行该Activity--> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>
AndroidManifext.xml文件包含如下信息:
应用程序包名,该包名也会作为该应用的唯一标识;
应用程序所包含的组件,如Activity、Service、BroadcastReceiver和ContentProvider等;
应用程序兼容的最低版本;
应用程序使用系统所需的权限声明;
其他程序访问该程序所需要的权限;
六、应用程序权限说明
声明应用程序本身需要的权限:为<manifest.../>元素添加<uses-permission.../>子元素可维程序本身声明权限;
<uses-permission android:name="android.permission.CALL_PHONE"/>
声明调用该应用所需要的权限:通过为应用程序各组件元素,如<activity.../>元素添加<uses-permission.../>子元素即可声明调用该程序所需要的权限;
- Android应用结构分析
- 【android】 应用结构分析
- Android应用结构分析
- Android:Android应用结构分析
- Android应用开发结构分析
- Android应用结构
- Android源码结构分析
- Android源码结构分析
- android源码结构分析
- android 目录结构分析
- android源代码结构分析
- Android 源码结构分析
- Android 源码结构分析
- Android 源码结构分析 .
- android源码结构分析
- Android 源码结构分析
- android系统结构分析
- android源代码结构分析
- Foundation Kit
- shared_ptr智能指针源码剖析
- Vmware-虚拟中的linux如何增加硬盘(转)
- objdump 用法
- Servlet——Cookie 和 Session
- Android:Android应用结构分析
- JavaScript对象的隐藏链接详解
- 从MyEclipse到IntelliJ IDEA ——让你脱键盘,全键盘操作
- 浅谈Zigbee的通讯方式
- google人写的200 行 C 代码垃圾收集器
- linux---device_driver驱动理论详解--bus总线高级篇
- android JNIEnv实现
- Hive
- 当程序不工作时,开发者常用的借口 & 程序员遇到Bug后的30种常见反应