一个Android项目会包括java源文件,资源文件如图片,基于xml的布局文件等,第三方的jar包等。这些文件最终会被编译成一个.apk文件即Android应用程序可执行文件Android package file, .apk文件可以安装在模拟设备或者真机上。

看一下HelloAndroid项目的结构图:

可以看到Android项目主要包括:

src/: 存放java源文件

gen/: 存放由Android编译工具生成的java源文件, 这些文件不能手动修改。如R.java就定义了一些常量,这些常量是对资源文件的索引,以便我们很方便的引用这些资源文件。

assets/: 存放一些静态文件并将会被一起打包成.apk文件

res/:存放资源文件

res/drawable: 存放图片如PNG,JPEG等

res/drawable-ldpi/my_icon.png // 存放低分辨率的图片
res/drawable-mdpi/my_icon.png // 存放中等分辨率的图片
res/drawable-hdpi/my_icon.png // 存放高分辨率的图片

res/layout: 存放基于xml的布局文件

res/menu: 存放基于xml的菜单文件

res/values: 存放字符串等资源文件,如多语言的文件

bin/:存放编译后的文件

bin/yourpackagename/classes/:存放java编译后的.class文件

bin/classes.dex: class文件被转换成针对Dalvik虚拟机优化的dex文件, 在Introducing Android中有提及。

bin/resources.ap_: 被压缩的资源文件类似zip文件。

bin/yourapp.apk: Android应用程序可执行文件,其实它也是个压缩的文件,包含了.dex文件,各种资源文件等。

AndroidManifest.xml是一个当前应用程序的组件清单,它列出了应用程序包含的各种activities,services,权限等, 下面看一下HelloAndroid项目中的AndroidManifest.xml文件:

01 <?xml version="1.0" encoding="utf-8"?>
02 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
03 package="com.benjamin.helloandroid"
04 android:versionCode="1"
05 android:versionName="1.0">
06 <application android:icon="@drawable/icon" android:label="@string/app_name">
07 <activity android:name=".HelloAndroid"
08 android:label="@string/app_name">
09 <intent-filter>
10 <action android:name="android.intent.action.MAIN" />
11 <category android:name="android.intent.category.LAUNCHER" />
12 </intent-filter>
13 </activity>
14 </application>
15 </manifest>

可以看到根元素manifest的定义, 首先声明了命名空间,指定了包名。android:versionCode是Android应用程序的版本号,一个整形的数字,在应用程序升级的时候会进行比较是否决定要更新。android:versionName是你自己为你应用程序定义一个版本代号,不必一定是数字,如”Tiger 2000”, “System X”等。如果你的应用程序要发布在Android Market的话,都需要指定android:versionCode和android:versionName这两项。


android:icon表示你的应用程序显示的图标,"@drawable/icon”表示读取res/drawable下面icon这个图片,android:label表示应用程序的名称,"@string/app_name”表示读取res/values/strings.xml中app_name的值。activity的两个属性android:name和android:label分别表示这个activity的类名,activity的显示名称。intent-filter表示在什么条件下这个activity会显示。

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 【android】欢迎来到Android多进程时代
  4. Android笔试的一部分知识点
  5. )Android核心模块及相关技术
  6. [Google Android] 理解NDK(1)-- 编译Android(安卓).so文件
  7. Android(安卓)studio添加httpclient的jar包
  8. xamarin之 安装工具介绍
  9. Android(安卓)adb不是内部或外部命令 问题解决

随机推荐

  1. Android--SoLoader,android动态加载so库
  2. Android Activity的启动
  3. 第三章 Android程序设计基础
  4. android 3dmax
  5. Android 报错:Caused by: android.os.File
  6. Android使用Retrofit进行网络请求
  7. Android 给 app默认权限(不弹窗申请权限)
  8. Android(安卓)到底是个什么东西?
  9. Android 触摸提示音
  10. 细数Android Studio中使用junit4测试框架