
Android应用程序中使用的四个主要组件
| 组件 | 描述 |
|---|---|
| Activities | 描述UI,并且处理用户与机器屏幕的交互。 |
| Services | 处理与应用程序关联的后台操作。 |
| Broadcast Receivers | 处理Android操作系统和应用程序之间的通信。 |
| Content Providers | 处理数据和数据库管理方面的问题。 |
附件组件
| 组件 | 描述 |
|---|---|
| Fragments | 代表活动中的一个行为或者一部分用户界面。 |
| Views | 绘制在屏幕上的UI元素,包括按钮,列表等。 |
| Layouts | 控制屏幕格式,展示视图外观的View的继承。 |
| Intents | 组件间的消息连线。 |
| Resources | 外部元素,例如字符串资源、常量资源及图片资源等。 |
| Manifest | 应用程序的配置文件。 |
相关术语的解析
- Dalvik: Android特有的虚拟机,和JVM不同,Dalvik虚拟机非常适合在移动终端上使用!
- AVD: (android virtual machine):安卓虚拟设备,就是安卓的模拟器
- ADT: (android development tools)安卓开发工具
- SDK:(software development kit)软件开发工具包,就是安卓系统,平台架构等的工具集合,如adb.exe
- DDMS:(dalvik debug monitor service)安卓调试工具
- ADB:安卓调试桥,在sdk的platform-tools目录下,功能很多,命令行必备
- DX工具:将.class转换成.dex文件
- AAPT:(android asset packing tool),安卓资源打包工具
- R.java文件:由aapt工具根据App中的资源文件自动生成,可以理解为资源字典
- AndroidManifest.xml:app包名 + 组件声明 + 程序兼容的最低版本 + 所需权限等程序的配置文件
ADB命令行的一些指令

工程项目结构解析(Android Studio开发)

res资源文件夹
图片资源
- drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等),或者一些其他的drawable类型的XML文件
- mipmap-hdpi:高分辨率,一般把图片放这里
- mipmap-xhdpi:超高分辨率
- mipmap-mdpi:中等分辨率,很少用,处分兼容手机很旧
- mipmap-xxhdpi:超超高分辨率
布局资源
- layout:该目录下存放的就是我们的布局文件,另外在一些特定的机型上,我们做屏幕适配,比如480*320这样的手机,我们会另外创建一套布局,就行:layout-480x320这样的文件夹!
values目录
-
demens.xml:定义尺寸资源
-
string.xml:定义字符串资源
-
styles.xml:定义样式资源
-
colors.xml:定义颜色资源
-
arrays.xml:定义数组资源
-
attrs.xml:自定义控件时用的较多,自定义控件的属性!
-
theme主题文件,和styles很相似,但是会对整个应用中的Actvitiy或指定Activity起作用,一般是改变窗口外观的!可在Java代码中通过setTheme使用,或者在Androidmanifest.xml中为<application…>添加theme的属性! PS:你可能看到过这样的values目录:values-w820dp,values-v11等,前者w代表平板设备,820dp代表屏幕宽度;而v11这样代表在API(11),即android 3.0后才会用到的!
raw目录
- 用于存放各种原生资源(音频,视频,一些XML文件等),我们可以通过openRawResource(int id)来获得资源的二进制流!其实和Assets差不多,不过这里面的资源会在R文件那里生成一个资源id而已
属性动画和补间动画
- animator:存放属性动画的XML文件
- anim:存放补间动画的XML文件
使用资源
- java代码中使用
| 资源 | 使用方式 |
|---|---|
| Java 文字 | txtName.setText(getResources().getText(R.string.name)); |
| 图片 | imgIcon.setBackgroundDrawableResource(R.drawable.icon); |
| 颜色 | txtName.setTextColor(getResouces().getColor(R.color.red)); |
| 布局 | setContentView(R.layout.main); |
| 控件 | txtName = (TextView)findViewById(R.id.txt_name); |
- XML代码中使用
通过@xxx即可得到,比如这里获取文本和图片:
<TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background = "@drawable/img_back"/>
Android程序签名打包
签名:
Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的
- 应用程序升级:签名证书和包名称要相同
- 应用程序模块化:android系统可以允许同一个证书签名的多个应用程序在一个进程里运行。系统时间将它们当做一个单个的应用程序,此时就可以把应用程序以模块方式部署,用户可以独立升级其中的一个模块
- 代码或者数据共享:Android提供了基于签名的的权限机制,一个应用程序可以为另一个以相同证书签名的应用程序公开自己的功能。
打包签名
①Build -> Generate Signed APK…

②弹出窗口,如果没有key,就创建一个,有的话就选择存在的Key

③没有,我们新建一个,可根据自己需要填写相关项:

④好的,点击OK后,可以看到我们密码的信息,可能需要我们填入密码了,填写下:

⑤点击Next:

⑥点击Finish稍等一会儿会出现下述提示,说明应用已经打包签名成功了:

⑦可以看到打包后的APK已经安详地躺在我们的app目录下了:

⑧到第七步就已经打包签名完成了,如果你要验证是否签名,只需要输入下述cmd指令


本文深入解析Android应用程序的主要组件,如Activity、Service、BroadcastReceiver和ContentProvider的功能,以及Fragments、Views、Layouts等附件组件的作用。同时介绍了Android开发工具、资源管理、工程结构和签名打包流程,为开发者提供全面的Android应用开发指南。
1439

被折叠的 条评论
为什么被折叠?



