Android学习基础之一 架构初始

本文深入解析Android应用的结构组成,包括必填文件、权限管理、组件类型及其作用,以及应用如何通过签名确保发布者的身份与应用完整性。详细介绍了资源文件的组织方式、AndroidManifest.xml的功能、组件如Activity、Service、BroadcastReceiver和ContentProvider的使用,以及Intent和IntentFilter的通信机制。最后,阐述了如何通过签名Android应用程序以保护应用的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提要
AndroidHelloworld应用结构;AndroidManifest.xml;R.java;应用程序权限管理;组件;签名
进入Android项目,可看到如下两个必要的文件夹:
HelloWorld
|----libs
|----res
||----drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi(分别对应低、中、高、超高分辨率图片文件)
| |----layout( 存放Android项目的各种资源文件,比如layout存放界面布局 )
| |----values(子文件如 字符串资源文件:string.xml; 颜色资源文件:colors.xml; 尺寸文件:dimes.xml )
|----src(存放Java源文件)
| |----org
| |----crazyit
| |----helloworld
|----AnroidManifest.xml
此外还可以在helloworld子目录下看到一个build.xml文件,这是Android为该项目提供的一个Ant生成文件。通过该文件,开发者可以来生成、安装Android项目。(Ant是一个非常简洁易用的项目生成工具)

Android项目提供的build.xml文件包含如下常用的生成target:
clean
debug
release
test
install
uninstall

——————————————————————
自动生成的R.java
可把R.java理解生Android应用的资源字典
每个具体的资源项对应于内部类的一个public static final int 类型的field

有了R.java,利用资源显得更加便捷:
1.在Java代码中使用资源
例:通过R.string.app_name来应用到“Helloworld”字符串常量
2.在xml文件中使用资源更加简单,只要按如下格式访问即可:
@<对应内部类类名>/<资源项名称> //如: @string/app_name
————————————————————————————————————————
应用清单文件:AndroidManifest.xml
说明了该APP的name、icon及包含的组件等信息
-name
-组件:Activity、service、BroadcastReceiver和ContentProvider
-兼容的最低版本
-使用系统所需权限声明
-其他App访问该程序所需权限声明
————————————————————————————————————————
Android应用的基本组件介绍
(Activity、Service、BroadcastReceiver、ContentProvider)
-Activity是负责与用户交互的组件
-View组件是所有UI控件、容器控件的基类,是实际用户看到的部分
需要通过Activity把指定View显示出来,调用Activity的setContentView()方法即可。
如果某app需要多个用户界面,那么这个Android应用将会包含多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶。(Activity包含setTheme(intresid)方法来设置其窗口风格,如不显示ActionBar、以对话框形式显示窗口等)
-Service与Activity是并列的,它也代表一个单独的Android组件。(Service通常位于后台运行,它一般不需要与用户交互,故而其不具图形用户界面)
-BroadcastReceiver为另一个重要组件,代表广播消息接收器。开发者只要实现自己的BroadcastReceiver子类,并重写onReceiver(Contextcontext,Intentintent)方法即可。当其他组件通过sendBroadcast()、sendStickyBroadcast()或sendOrderedBroadcast()方法发送广播消息时,如该BroadcastReceiver也对该消息“感兴趣“(通过IntentFilter配置),BroadcastReceiver的onReceiver(Contextcontext, Intent intent)方法将会被触发。
-ContentProvider对于Android应用而言,它们必须相互独立,各自运行在自己的Dalvik虚拟机实例中。如发送短信时需要从联系人管理中读取指定联系人的数据——这就需要多个应用程序之间进行数据交换。Android为这种跨应用的数据交换提供了一个标准:ContentProvider。实现自己的ContentProvider时,需要实现如下抽象方法:
a.insert(Uri, ContentValues):向ContentProvider插入数据
b.delete(Uri, ContentValues):删除ContentProvider中指定数据
c.update(Uri,ContentValues, String,String[]):更新ContentProvider中指定数据
d.query(Uri,String[],String,String[],String):从ContentProvider查询数据
通常与ContentProvider结合使用的是ContentResolver,一个应用程序使用ContentProvider暴露自己的数据,而另一个应用程序则通过ContentResolver来访问数据
-Intent和IntentFilter 严格说,Intent并不是Android应用的组件,但它对于Android应用的作用非常大——内部不同组件之间通信的载体。当Android运行时需要连接不同组件时,通常就需要借助于Intent实现。

——————————————————————————————————————————————
签名Android应用程序
签名主要有以下两个作用:(签名有密钥)
1.确定发布者身份
2.确保应用的完整性
如果要正式发布一个Android应用,必须使用合适的数字证书来给应用程序签名,不能使用ADT插件或Ant工具生成的调试证书来发布。
在Eclipse中对Android应用签名:
1.Android Tools-->Export Signed ApplicationPackage...
2.Create new keystore
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值