Android开发自学笔记(二):工程文件剖析


无论使用何种IDE开发Android,集成官方Android SDK并创建Android工程之后,该工程都会默认包括一整套Android项目文件,这个工程都可以直接run在你的真机或者模拟器上。

本文主要简单剖析这个默认的完整的一套项目工程的文件结构,这样我们在开发我们自己的项目的时候才能熟练做到有的放矢。

AndroidManifest.xml

这个AndroidManifest.xml文件可谓是整个Android工程的灵魂架构师,它不仅定义了你的Android程序运行时所需的功能特性,同时也定义了该Android程序所需权限以及Android核心组件。

这里简单介绍目前我们所遇到最重要的节点元素之一:<uses-sdk> 。

这个节点定义了你的应用的设备兼容性问题,我们都知道Android设备五花八门,但不同的设备都是有Android版本,比如我们常听说的Android2.2, 2.3,平板专用的Android3.0和现在的Android4.x,这些版本都有定义好的SDKVersion,所在这个节点里面我们得指定最小Android版本(android:minSdkVersion)以及目标Android版本(android:targetSdkVersion)这两个属性。所以应该形如:

复制代码 代码如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" />
...
</manifest>

其中最小Android版本指定为8,并且指定目标版本为19,需要注意的是:

1.android:targetSdkVersion应设置尽可能的高,这个属性的作用是当设备的SDK version和指定的目标版本一致,无需设备打开兼容功能;

2.android:minSdkVersion而这个属性则提现了你的应用向下兼容程度,一旦设备的SDK version低于这个数字,则无法安装出现下述错误:

复制代码 代码如下:

Installing com.example.HelloWorld
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.example.HelloWorld"
pkg: /data/local/tmp/com.example.HelloWorld
Failure [INSTALL_FAILED_OLDER_SDK]

1.如果不显式指定targetSdkVersion,则默认等同于minSdkVersion;
2.另外,我们有时会看到android:maxSdkVersion,其作用和minSdkVersion相反,这个属性主要体现在Android 1.5, 1.6, 2.0, 和2.0.1中,这些老的系统一旦在做完系统更新时,会重现验证并安装老系统中安装的应用程序,一旦发现maxSdkVersion低于升级之后的新系统,则新系统不予安装这些应用。

src/

src目录,顾名思义存放的是应用程序的源码文件,当然程序在编译之后这个目录就不复存在了,否则源码被人家盗了不是?

res/

res目录是指资源文件resource的存放目录,这个目录包含了一些子目录。

比如存放图片的目录drawable-xxx,在现在的默认环境中,一般有4个类似的目录,分别用来存放不同分辨率的图片(drawable-xhdpi/hdpi/mdpi/ldpi),好的应用为了尽可能多的适配多种不同分辨率的机型,是需要做多套不同分辨率的图片,并分别存放在这4个目录中。

res目录下还有用来存放定义用户界面GUI(应用程序界面)的布局文件,这些布局文件则存放在layout目录下;

另外还有一个用来存放定义变量集的xml的目录,即values,这个目录可以定义颜色和字符串等变量集合。



相关阅读:
C语言编写基于TCP和UDP协议的Socket通信程序示例
js图片卷帘门导航菜单特效代码分享
jQuery实现左侧导航模块的显示与隐藏效果
Win10桌面图标没了怎么办?Win10桌面快捷方式消失了解决方法
Nodejs爬虫进阶教程之异步并发控制
javascript时间函数大全
微软官方展示真正的Win10预览版10527版本信息
jQuery针对各类元素操作基础教程
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
Oracle开发之窗口函数
win10关闭防火墙后如何关闭通知?win10关闭防火墙后总是弹出通知图文解决办法(两种)
ajax异步回调函数中给外部变量赋值的问题探讨
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
javascirpt实现2个iframe之间传值的方法
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 让自己聪明的活着 回忆情人节 稀客 生活【生命】 春天来了~三年级描写春天的作文汇总 祖国,我想对您说作文 漫谈,梦楼作文450字 小学四年级作文350字:田园生活的作文 “飞人”乔丹_我最崇敬的名人作文 东山十八弯 中学生演讲稿范文:我的梦,中国梦 教育局领导在幼儿园庆六一文艺汇演上的致辞 潺潺流年,落寞阑珊 你是我的亲人,怀念爷爷的文章 XX水务有限公司年度工作总结 《我的妈妈很嘴馋》作文 扬起和谐的风帆,驶向和谐的彼岸 高中高一作文450字:理想 卫生院健康教育工作总结 习惯伴随一生主题班会 小学生母亲节演讲稿范文两篇 清朝故事:甄嬛到底是不是雍正的熹贵妃 与窗相伴甚好! 学校创新--“链接”创新教育,“刷新”学校形象 着力解决群众关心的实际问题,努力构建和谐社会 对不起我错了 寝室生活作文700字 找一个女朋友吧 浪漫与残酷只隔一行 恢组词 2014畅想大学的未来演讲稿 会飞翔的龙——吴亦凡 大学生暑期社会实践报告优秀范文_暑期社会实践报告 为何作文100字 天使VS恶龙(13)作文1100字 我不是机器人!作文550字 登莽山 读隋唐演义有感 长大的感觉好550字 我不再任性700字 感情的距离 幼师自我鉴定范文 睡美人的感恩 小学四年级作文500字:我家的端午节 汽车租赁企业致全体员工的春节慰问信 用工合同样本 徵招调中腔(天宁节) 踏春作文100字 2015年广西高考零分作文:万法自然 风采随缘 组诗七首请到天涯海角来

Copyright © 2016 phpStudy |