应用程序组件是一个Android应用程序的基本构建块。这些组件由应用清单文件松耦合的组织。AndroidManifest.xml描述了应用程序的每个组件,以及他们如何交互。以下是可以在Android应用程序中使用的四个主要组件。
组件 | 描述 |
---|---|
Activities | 描述UI,并且处理用户与机器屏幕的交互。 |
Services | 处理与应用程序关联的后台操作。 |
Broadcast Receivers | 处理Android操作系统和应用程序之间的通信。 |
Content Providers | 处理数据和数据库管理方面的问题。 |
一个活动标识一个具有用户界面的单一屏幕。举个例子,一个邮件应用程序可以包含一个活动用于显示新邮件列表,另一个活动用来编写邮件,再一个活动来阅读邮件。当应用程序拥有多于一个活动,其中的一个会被标记为当应用程序启动的时候显示。
一个活动是Activity类的一个子类,如下所示:
public class MainActivity extends Activity {
}
服务是运行在后台,执行长时间操作的组件。举个例子,服务可以是用户在使用不同的程序时在后台播放音乐,或者在活动中通过网络获取数据但不阻塞用户交互。
一个服务是Service类的子类,如下所示:
public class MyService extends Service {
}
广播接收器简单地响应从其他应用程序或者系统发来的广播消息。举个例子,应用程序可以发起广播来让其他应用程序知道一些数据已经被下载到设备,并且可以供他们使用。因此广播接收器会拦截这些通信并采取适当的行动。
广播接收器是BroadcastReceiver类的一个子类,每个消息以Intent对象的形式来广播。
public class MyReceiver extends BroadcastReceiver {
}
内容提供者组件通过请求从一个应用程序到另一个应用程序提供数据。这些请求由ContentResolver类的方法来处理。这些数据可以是存储在文件系统、数据库或者其他其他地方。
内容提供者是ContentProvider类的子类,并实现一套标准的API,以便其他应用程序来执行事务。
public class MyContentProvider extends ContentProvider {
}
有一些附件的组件用于以上提到的实体、他们之间逻辑、及他们之间连线的构造。这些组件如下:
组件 | 描述 |
---|---|
Fragments | 代表活动中的一个行为或者一部分用户界面。 |
Views | 绘制在屏幕上的UI元素,包括按钮,列表等。 |
Layouts | 控制屏幕格式,展示视图外观的View的继承。 |
Intents | 组件间的消息连线。 |
Resources | 外部元素,例如字符串资源、常量资源及图片资源等。 |
Manifest | 应用程序的配置文件。 |
文章浏览阅读776次,点赞2次,收藏2次。https://www.mihaoyun.comhttps://www.jb51.net/article/211773.htm
文章浏览阅读892次,点赞2次,收藏9次。开始使用IDEA创建java工程,两种方法 直接创建java工程 然后一路next,只需要修改工程名和路径即可 先新创建一个空项目,一路next后再选择Moudle创建java模块,如图 然后进行项目结构的配置,将图中两个位置进行设置 然后按照正常步骤即可 常使用的快捷键 快速复制一行ctrl+d 快速删除一行ctrl+y java的基础语法1.注释 ..._用idea讲java
文章浏览阅读8.4k次。el-button 的显示与隐藏iconfont 的引用_el-button禁用
文章浏览阅读953次。方法1 将pair存入vector排序在map中存储 <key, value> 键值对的数据结构是pair,简单直接的想法是将map中的pair复制一份存储到vector中,并重写compare函数根据second元素排序,就可以使用sort对该vector进行排序。代码实现#include <iostream>#include <algorithm>#include <string>#include <map>#include &l_std::map 按value排序
文章浏览阅读1.3w次,点赞7次,收藏18次。两个元素位置互换change_list = [6, 8]print(change_list)# 交换列表,以下两个均可# change_list[0], change_list[1] = change_list[1], change_list[0]change_list[1], change_list[0] = change_list[0], change_list[1] pri..._change_list()
文章浏览阅读446次。1. hasAuthority方法(只针对某一个权限)如果当前的主题具有指定的权限,则返回true,否则返回false在配置类设置当前访问地址有哪些权限@Override protected void configure(HttpSecurity http) throws Exception { //自定义自己编写的登录页面 http.formLogin() .loginPage("/login.html")//登录页面设置
文章浏览阅读2.4k次。选择目标板,具体选择多大的Flash要根据板子上的芯片型号决定。秉火STM32开发板的配置是:F1选512K,F4选1M,我这里选的64k。擦除的Flash大小选择Sectors即 可,不要选择Full Chip,会非常慢。把仿真器用USB线连接至电脑,如果仿真器的灯亮则表示正常,可以使用。再把仿真器的另外-端连 接到开发板,给开发板上电,就可以通过软件KEIL或者IAR给开发板下载程序,仿真器见图1。单机LOAD按钮,进行下载,出现“Application running”下载成功。_dap下载器怎么连接
文章浏览阅读1.2k次。本文非原创文章,是对网上资料的整理,但忘了出处,在此未标明源地址表示抱歉。1.涉及的TABLESDTH &n..._int15 getmemorymap
文章浏览阅读2.5w次,点赞8次,收藏24次。方法一:在app目录下导入aar在app-libs目录下导入aar在app-build.gradle中配置repositories { flatDir { dir 'libs' } }implementation(name:'Test_debug', ext:'aar')构建项目,在External Libraries目录下会生成该依赖方法二、在项目根目录下导入aar(该方法更加实用,如果某一个library想依赖_androidstudio引入aar包
文章浏览阅读4.8k次,点赞7次,收藏87次。安装环境SolidWorks2016Gazebo7下载URDF插件下载链接:http://wiki.ros.org/sw_urdf_exporter默认路径安装到C盘,请根据自己的SolidWorks安装位置选择。_solidworks模型导入ros
文章浏览阅读980次。记一次Python代码出错在使用python struct模块读取二进制文件进行解析的时候,出现了这个报错,检查以后发现,我将py文件命名为struct.py在实际使用中要避免使用已经分配的标识符进行代码文件命名。其他的模块也会出现此错误。..._line 104, in send_struct vs_h1 = struct.decode(response) attributeerror: mod
文章浏览阅读1.2k次。一,先安装 datav 可以参考介绍 | DataV (jiaminghi.com) 使用 #按需引入 先效果展示二, 分解教学 main.js 根据自己需求引入打开页面定位每个地方的位置然后开始引入代码_看板大屏 datav 软件安装