android 四大组件
文章平均质量分 93
lyglostangel
这个作者很懒,什么都没留下…
展开
-
通用 Intent
通用 IntentIntent 用于通过描述您想在某个Intent对象中执行的简单操作(如“查看地图”或“拍摄照片”)来启动另一应用中的某个 Activity。这种 Intent 称作隐式Intent,因为它并不指定要启动的应用组件,而是指定一项操作并提供执行该操作所需的一些数据。当您调用startActivity()或startActivityForResult()并向其传递隐式 Intent 时,系统会将 Intent 解析为可处理该 Intent 的应用并启动其对应的Activ...翻译 2021-12-02 11:03:02 · 538 阅读 · 0 评论 -
appWidget
构建应用微件应用微件是可以嵌入其他应用(如主屏幕)并接收定期更新的微型应用视图。这些视图称为界面中的微件,您可以使用应用微件提供程序发布微件。能够容纳其他应用微件的应用组件称为应用微件托管应用。下面的屏幕截图显示了音乐应用微件。本文档介绍如何使用应用微件提供程序来发布应用微件。如需了解如何创建您自己的AppWidgetHost来托管应用微件,请参阅应用微件托管应用。注意:如需了解如何设计应用微件,请阅读应用微件概览。基础知识要创建应用微件,您需要:AppWidgetProvi..翻译 2021-12-01 17:14:28 · 1009 阅读 · 1 评论 -
应用快捷方式
创建快捷方式快捷方式可帮助用户快速访问您的应用的某些部分,从而为他们呈现特定类型的内容。您要如何以快捷方式来呈现内容取决于您的用例,以及快捷方式的上下文是属于应用驱动型还是用户驱动型。虽然静态快捷方式的上下文不会更改,而动态快捷方式的上下文会不断变化,但这两种情况下的上下文都由您的应用驱动。如果用户选择了希望应用以哪种方式(例如使用固定快捷方式)向其呈现内容,则此时的上下文是由用户定义的。以下场景展示了各类快捷方式的一些用例:静态快捷方式最适合在用户与应用互动的整个生命周期内使用一致结构链接到内翻译 2021-12-01 15:43:55 · 1041 阅读 · 0 评论 -
多窗口支持
Android 允许多个应用同时共享同一屏幕。该系统可以并排显示两个应用(分屏模式),可在其他应用的上方用小窗口叠加显示应用(画中画模式),还可以让各个应用分别在可移动且可调整显示尺寸的窗口中显示(自由窗口模式)。图 1.两个应用在分屏模式下左右并排显示。用户体验取决于 Android 操作系统的版本和设备类型: Android 7.0在手持设备上支持分屏模式,在电视上支持画中画模式。 分屏模式会以左右并排或上下并排的方式分屏显示两个应用。用户可以拖动两个应用之间的分隔线,放大..翻译 2021-12-02 11:02:49 · 3909 阅读 · 0 评论 -
“最近使用的应用”屏幕
“最近使用的应用”屏幕最近使用的应用屏幕(也称为概览屏幕、近期任务列表或最近用过的应用)是一个系统级界面,上面列出了最近访问过的Activity和任务。用户可以浏览该列表并选择要恢复的任务,也可以通过滑开操作将任务从列表中移除。Android 5.0(API 级别 21)引入了以文档为中心的模型,也就是说,如果同一 Activity 的多个实例包含不同的文档,它们可能会在最近使用的应用屏幕中显示为任务。比如说,Google 云端硬盘的几个 Google 文档可能各自都有一个任务。每个文档都会在最近使..翻译 2021-12-01 11:23:40 · 365 阅读 · 0 评论 -
加载器使用
Android P(API 级别 28)中已弃用加载器。在处理 Activity 和 Fragment 生命周期时,推荐使用ViewModels和LiveData的组合来处理加载数据。当加载器等配置发生变更后,ViewModel 仍会存在,但其样板文件会有所减少。LiveData 提供拥有生命周期感知能力的数据加载方法,您可以在多个 ViewModel 中重复使用该方法。您还可使用MediatorLiveData结合 LiveData,并且可使用任何可观察查询(例如来自Room 数据库的查询)...翻译 2021-12-01 11:04:07 · 866 阅读 · 0 评论 -
根据用例配置软件包可见性
本文档举例说明了应用与其他应用进行交互的一些常见用例。每个部分都会介绍如何针对其他已安装应用管理软件包可见性,如果您的应用以 Android 11(API 级别 30)或更高版本为目标平台,则需要考虑这个问题。当您的应用以 Android 11 或更高版本为目标平台并使用 intent 在其他应用中启动 activity 时,最简单的方式是调用 intent,并在没有可用的应用时处理ActivityNotFoundException异常。如果应用的部分功能需要知道对startActivity(...转载 2021-11-18 18:14:39 · 217 阅读 · 0 评论 -
AndroidX Activity 改动 及ActivityResultLauncher 简单修改
google 在 androidX 上对 activity 及 fragment 部分功能调整(startActivityForResult ,requestPermission,Save/Restore InstanceState,onBackPress)简化为 callback 的可回调方式使用(暂时还会修改,建议 beta 版再更) // build.gradle implementation 'androidx.activity:activity-ktx:1.2.0-alpha03'转载 2021-11-18 17:49:39 · 2016 阅读 · 0 评论 -
文档指南-视图绑定
通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。在大多数情况下,视图绑定会替代findViewById。设置说明注意:视图绑定在Android Studio 3.6 Canary 11 及更高版本中可用。视图绑定功能可按模块启用。要在某个模块中启用视图绑定,请将viewBinding元素添加到其build.gradle文件中,如...转载 2021-11-18 15:51:56 · 211 阅读 · 0 评论 -
应用架构指南
本指南包含一些最佳做法和推荐架构,有助于构建强大而优质的应用。本页假定您对 Android 框架有基本的了解。如果您不熟悉 Android 应用开发,请查看我们的开发者指南,着手体验并详细了解本指南中提到的概念。如果您对应用架构感兴趣,并且希望从 Kotlin 编程的角度看本指南中的内容,请查看使用 Kotlin 开发 Android 应用这一 Udacity 课程。移动应用用户体验在大多数情况下,桌面应用将桌面或程序启动器当做单个入口点,然后作为单个整体流程运行。Android 应用则不然转载 2021-11-18 14:29:47 · 333 阅读 · 0 评论 -
BottomSheetDialogFragment使用的注意点
最近重构项目,想把之前的一些控件替换成BottomSheetDialog。最后选用的是更加方便的BottomSheetDialogFragment。也遇到了很多坑,写出来分享一下。1.BottomSheetDialogFragment背景圆角设置<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:转载 2021-11-18 11:00:30 · 2700 阅读 · 0 评论 -
与 Fragment 通信
为了重复使用 Fragment,请将每个 Fragment 构建为一个完全独立的组件,使其定义自己的布局和行为。定义这些可重复使用的 Fragment 后,您可以将其与 Activity 关联,并将其与应用逻辑联系起来,以实现整体复合界面。为了正确响应用户事件,或为了共享状态信息,通常需要在 Activity 与其 Fragment 之间或者两个或更多 Fragment 之间具有通信渠道。为使 Fragment 保持独立,您不应让 Fragment 直接与其他 Fragment 或与其宿主 Activi转载 2021-11-18 09:41:20 · 353 阅读 · 0 评论 -
Android Activity生命周期以及Fragment生命周期的区别与分析
Android Activity生命周期以及Fragment生命周期的区别与分析Android Fragment生命周期图:Activity生命周期图: 对照图:Fragment生命周期分析:1. 当一个fragment被创建的时候,它会经历以下状态.onAttach()onCreate()onCreateView()---onViewCreateo转载 2017-10-12 10:58:52 · 517 阅读 · 0 评论 -
Android API之android.provider.ContactsContract.RawContacts
android.provider.ContactsContract.RawContactsConstants for the raw contacts table, which contains one row of contact information for each person in each synced account. Sync adapters and contact m转载 2015-02-28 12:44:05 · 777 阅读 · 0 评论 -
Android API之android.provider.ContactsContract.Data
android.provider.ContactsContract.DataConstants for the data table, which contains data points tied to a raw contact. Each row of the data table is typically used to store a single piece of cont转载 2015-02-28 12:37:09 · 566 阅读 · 0 评论 -
android Application Component研究之Activity(二)
上篇文章分析完了task的创建或者复用,接下来接着分析activity在启动过程中还有哪些工作需要去完成?首先给出整个activity的过程图。 1. Starting Window 当该activity运行在新的task中或者进程中时,需要在activity显示之前显示一个Starting Window。如上图所示的setAppStartingWindow()方法,这个S转载 2014-08-07 18:35:44 · 612 阅读 · 0 评论 -
android Application Component研究之BroadcastReceiver
这篇文章开始从framework的角度来研究一下android四大控件最后一个控件BroadcastReceiver 的机制与原理,BroadcastReceiver 字面意思就是广播接收器,它能接收来自于系统的以及其他appliaction的广播消息,是android中非常重要的一个component。 1. BroadcastReceiver注册 BroadcastReceive转载 2014-08-07 18:29:09 · 502 阅读 · 0 评论 -
android Application Component研究之ContentProvider
android在实现进程间数据访问时,对不同的进程不同Application的数据访问提供了一套解决方案,这套解决方案便是ContentProvider。在开发应用程序时,想要访问其他进程的数据,ContentProvider便是不二的选择。 Content Provider其实很简单,其实质就是IPC通信,通过提供一个IInterface给Client来访问当前进程的数据。下面来分转载 2014-08-07 18:37:40 · 502 阅读 · 0 评论 -
android Application Component研究之Service
前面2篇文章介绍了acitivity的管理,其中保存task的管理,activity生命周期中各个阶段的操作等问题,这篇文章我们来详细的研究一下android系统中application Service的管理过程。 Service是android中一个非常重要的组件,作为一个从事android开发的人,service是必须掌握的一个组件,这篇文章不是从如何使用Service角度来分析的,而转载 2014-08-07 18:34:22 · 628 阅读 · 0 评论 -
关于Android隐式启动Activity的分析和说明
关于Android隐式启动Activity的分析和说明转载 2014-08-08 08:41:20 · 517 阅读 · 0 评论 -
Activity、Task、应用和进程
Activity、Task、应用和进程 很想弄清楚启动一个Activity和Task(任务)的关系,网上也有很多相关资料,由从源码来具体分析的,也有针对launchmode来分析,但都不是自己的,理解起来总不是那么容易,为此,尝试着自己去理解其中的逻辑。不过事先需要弄清楚两个问题:谁负责管理Activity?Android的framework框架中采用C/S的方式实现由后台服务Ac转载 2014-08-25 15:11:30 · 525 阅读 · 0 评论 -
Android下的任务和Activity栈(以及taskAffinity属性)
Android下的任务和Activity栈文章分类:移动开发就像前面提到的,一个activity可以启动另一个,包括那些定义在不同应用程序中的。假设,例如,你想让用户显示一些地方的街道地图。已经有一个activity可以做这个事,所以你的activity所要做的就是将行为对象和需要的信息放在一起,并将它们传递给startActivity()。地图查看器将显示这个地图。当用户按下后退按钮时,转载 2014-08-25 16:24:57 · 732 阅读 · 0 评论 -
Android 官方文档之Activity和Task
什么知识,看官方的API是最好的了。但是鉴于很多人英语不好,便转载了这篇文章,翻译的非常好了。搞不懂Activity声明周期,和程序框架设计的,最好看一看。Activity 和 task 的设计摘要Activity 是 Android 应用的主要组成部分。 除了自己写Activity之外,你还可以利用intent,轻松地重用其它应用的Activity。 你可以让你应用里的Act转载 2014-08-25 16:08:27 · 590 阅读 · 0 评论 -
启动另外的一个应用程序的Activity(三种方式)
第一种(我自己写的) :之前在网上看来一些,很多不是我要的可以启动另外一个应用程序的主Activity. //这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activity ComponentName componetName = new ComponentName( //这个转载 2015-02-25 18:03:25 · 457 阅读 · 0 评论 -
Android API之android.provider.ContactsContract
android.provider.ContactsContractContactsContract是联系人provider和app的contract。定义了已支持的URL和column。取代了之前的Contacts。OverviewContactsContract定义了有关联系人信息的可扩展的数据库。Contact信息保存为三层数据模型:1. Data表保存了任转载 2015-02-28 12:10:49 · 723 阅读 · 0 评论 -
Android API之android.provider.ContactsContract.Contacts
android.provider.ContactsContract.Contacts对应contacts数据表。RawContacts的一个聚合(aggregate)代表同一个人。每个人在数据表contacts中有一个记录。OperationsInsertContact不能直接/显式创建。插入一个RawContact时,provider首先查找是否存在一个Con转载 2015-02-28 12:09:38 · 900 阅读 · 0 评论 -
android Application Component研究之Activity(一)
终于下定决心写写ActivityManagerService的源码分析的文章了,ActivityManagerService 业务的整个逻辑关系被各种复杂的数据结构包裹着,因此对ActivityManagerService 的分析主要就是对各种数据结构的分析,明白了这些数据结构,理解ActivityManagerService的业务内容就水到渠成了。 AMS提供了一个ArrayList转载 2014-08-07 18:32:34 · 517 阅读 · 0 评论