首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【转】 Android是怎么样启动应用程序的,点击启动图标到显示视图到底做了什么操作

转载自 https://juejin.im/post/5b0d0a0cf265da091f105858 本文阐述了用户点击启动图标后,Android 系统是怎么启动你的应用程序,将应用视图显示在移动设备上...首先说一下 Android 应用程序的两个特点 多入口,和只有一个 main 方法的应用程序不同,Android 应用程序有四大组件构成 ( Activity , Service ) ,每个组件都是一个入口...当用户或者其他应用程序用到了属于你的应用程序的组件,比如 ( Activity ,Service ) Android 就会为你的应用程序启动一个新的进程(你的应用进程不存在当前 Android 系统中时...然后 init 进程又会启动一个 zygote 进程 ,zygote 进程他会创建一个原始 dalvik 虚拟机 然后继承系统资源,和 Android 应用程序框架,然后进入监听状态,随时准备复制一份,...启动应用程序可以分为三个步骤 创建一个进程 绑定应用程序 启动一个 Activity ?

86560

三星折叠屏开发者设计指南揭秘

Android P (9.0) 开始,谷歌提供了名为Multi-resume的新功能,允许设备厂商在多窗口模式下保持所有可见应用处于活动状态,解决了分屏的多个应用仅有一个能保持活动状态的问题。...备用布局,Android允许应用针对不同屏幕配置提供多种备选布局。可以利用配置限定符实现此目的,它允许系统根据当前配置(针对不同屏幕尺寸的不同布局设计)自动选择合适的资源。...image 安装后,应用列表中打开应用程序“可折叠模拟器”。 3)权限授予 ?...image “SYSTEM_ALERT_WINDOW”权限也可以在activity中授予,在应用程序启动时显示,无需使用上述命令授予。 4)仿真方法 ? image 4....image 在多窗口模式下运行您的应用程序 通过点击其他应用将焦点第一个应用移动到另一个应用 检查应用程序是否仍处于resumed状态 当您的应用意外丢失资源(例如相机)时,检查应用是否有任何意外行为

4K40
您找到你想要的搜索结果了吗?
是的
没有找到

Android程序员问答题

Activity类是应用程序整个生命周期的重要组成部分,活动的发起和组装是平台应用程序模型的基本组成部分。...更重要的是,任何在当前Activity中的任何改变都要在这个函数中提交。 生命周期:在整个的生命周期,onCreate(Bundle)开始到onDestroy()结束。...onStart()开始到onStop()结束。onResume()开始到onPause(()结束。...8.Activity启动模式 standard是活动默认的启动模式,在不进行显式指定的情况下,所有活动都会自动使用这种模式。标准启动一个新的activity压入栈中。...singleTop是在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它。 singleTask是如果每次启动时系统首先会在返回栈中检查是否存在该活动的实例。

64120

面向初学者的 Android 应用开发基础知识

为这些智能手机构建了各种应用程序应用程序),游戏、音乐播放器、相机等,以便在 Android 上运行。Google Play 商店拥有超过 330 万个应用程序。...它在应用程序启动启动。至少有一个活动始终存在,称为 MainActivity。该活动通过以下方式实施。...例如,当手机的电池电量不足时,Android 操作系统会触发广播消息以启动省电功能或应用程序,在收到消息后,应用程序会采取适当的措施。...class MyReceiver extends BroadcastReceiver{ public void onReceive(context,intent){ } 内容提供者:内容提供者用于在另一个应用程序的请求下将数据从一个应用程序传输到另一个应用程序...它还包含应用程序的硬件和软件功能,这些功能决定了应用程序在 Play 商店中的兼容性。它还包括特殊活动服务、广播接收器、内容提供者、包名称等。

1.1K20

Android零单排系列三十九】《认识Android中的Intent》

一 Intent基本介绍 Intent是Android中的一个基本组件,用于在应用内的不同组件(活动、服务和广播接收器)之间进行通信和交互。...启动服务:使用Intent可以启动后台服务,使服务在后台运行并执行指定的任务。 发送广播:通过发送具有特定Action或Data的广播Intent,可以通知其他组件或应用程序发生了某个事件。...传递数据:Intent可以携带额外的数据,可以将数据从一个组件传递到另一个组件,例如从一个活动传递数据给另一个活动。...intent.putExtra("key", value); 5.Flags(标志):用于改变Intent的行为和启动模式,FLAG_ACTIVITY_NEW_TASK表示在新的任务中启动活动。...); 11.获取Intent中的数据: String value = intent.getStringExtra("key"); 除了上述常见的属性和方法,Intent还有一些其他用法和扩展功能,启动带返回结果的活动

28710

Android开发之路--(2)--Android四大组件

一、 onCreate :当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。   ...活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。...3.Broadcast Receiver 是Android应用中另一个重要的组件,BroadcastReceiver代表广播消息接收器。...通常与ContentProvider结合使用的是ContentResolver,一个应用程序使用ContentProvider暴露自己的数据,而另一个应用程序则通过ContentResoler来访问数据...当Android运行时需要连接不同的组件时,通常就需要借助于Intent来实现。Intent可以启动应用中另一个Activity,Service,BroadcastReceiver。

78820

AndroidAndroid对于Activity的运用以及ViewGroup和 用户界面组件在项目中的运用

Activity 确保无论系统哪个任务启动活动,都只会创建一个活动实例并将其添加到新任务堆栈的顶部,也就是说,该实例启动的其他活动将自动在另一个任务中运行。...="android:maxHeight">24dip 按Home将上一个任务切换到后台 长按Home键显示最近执行的任务列表 单击启动器或主屏幕中的应用程序图标以打开新任务或将现有任务安排到前台...如果任务中已存在要启动活动的实例,请清除该实例上方的所有活动,并向用户显示该实例。如果现有任务中没有要启动活动实例,请在任务顶部启动一个实例。...如果任务不存在,将启动一个新任务,并在新任务中启动单一任务模式下的活动实例。 启动单个实例的活动时,它将在系统中搜索此活动的实例是否已存在。...Android为我们提供了View和ViewGroup子类的集合,其中提供了一些常见的输入控件(如按钮和文本字段)和各种布局模式(线性或相对布局) <?

65620

安卓入门-第二章-探究活动

作为你的导师,我有义务帮你制定好后面的学习路线,那么今天我们应该哪儿入手呢?现在你可以想象一下,假如你已经写出了一个非常优秀的应用程序,然后推荐给你的第一个用户,你会哪里开始介绍呢?...一个应用程序中可以包含零个或多个活动,但不包含任何活动应用程序很少见,谁也不想让自己的应用永远无法被用户看到吧?  活动代表了一个具有用户界面的单一屏幕, Java 的窗口或者帧。...使用隐式Intent,我们不仅可以启动自己程序内的活动,还可以启动其他程序的活动,这使得Android多个应用程序之间的功能共享成为了可能。...在启动活动时传递数据的思路很简单,Intent中提供了一系列putExtra()方法的重载,可以把我们想要传递的数据暂存在Intent中,启动另一个活动后,只需要把这些数据再从Intent中取出就可以了...6.3启动活动的最佳写法 启动活动的方法为: 首先通过Intent构建出当前的“意图”, 然后调用startActivity()或startActivityForResult()方法将活动启动起来,如果有数据需要从一个活动传递到另一个活动

2.9K20

Android基础总结(2)——活动Activity

1、什么是活动(Activity)   活动(Activity)是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序中可以包含零个或多个活动,但不包含任何活动应用程序很少见。...,还可以启动其他程序中的活动,这使得Android多个应用程序之间的功能共享成为了可能。...  在启动活动时传递数据的思路很简单,Intent中提供了一系列putExtra()方法的重载,可以将我们想要的数据暂存在Intent中,启动另一个活动后,只需要将这些数据取出就可以了。    ...如果要返回数据给上一个活动,则用startActivityForResult()方法来启动另一个活动,该方法接收两个参数,第一个是Intent,第二个是请求码,用于在之后的回调中判断数据的来源,该请求码只要是一个唯一值就可以了...此时的活动一定位于返回栈栈顶,并且处于运行状态。 onPause():在系统准备去启动或恢复另一个活动的时候调用。

1.2K90

Android 12的行为变更和版本兼容思路

这样,每当另一个应用程序调用PendingIntent并将控制权传递回您的应用程序时,该应用程序中的同一组件始终会启动。...无法服务或广播接收者创建Notification trampolines 当用户与通知交互时 ,某些应用程序会通过启动应用程序组件来响应通知点击,该组件最终会启动用户最终看到并与之交互的活动。...这个应用程序组件被称为notification trampoline。 为了提高应用程序性能和用户体验,面向Android 12的应用程序无法用作通知蹦床的服务或 广播接收器启动活动 。...当您的应用尝试充当通知蹦床的服务或广播接收器启动活动时,系统会阻止该活动启动,并且Logcat中会显示以下消息 : Indirect notification activity start (trampoline...更新您的应用 如果您的应用充当通知蹦床的服务或广播接收器启动活动,请完成以下迁移步骤: 创建PendingIntent与以下活动之一关联的对象: 用户点击通知后看到的活动(首选)。

4.4K10

APP测试面试题汇总

4.操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据内存移动到SD卡后能否正常运行等。...一个应用程序可以包含许多活动,比如事件的点击,一般都会触发一个新的Activity。...ContentProvider内容提供者:内容提供者主要用于在不同应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。...服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务仍然能够保持正常运行,不过服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。...生命周期即活动开始到结束所经历的各种状态,从一个状态到另一个状态的转变,从无到有再到无,Activity本质上有四种状态: 运行(Active/Running):Activity处于活动状态,此时Activity

1.7K31

Android开发基础系列】Android开发学习专题

如果应用程序的代码以及运行情况考虑,可以关注Android的各种组件相对应的生命周期。     ...Activity被“覆盖”的情景:Android的Activity一般都占据一个完整的屏幕,当前Activity启动另外一个Activity时,另一个Activity将被启动到前台(Foreground...4.3 使用am工具启动Android应用程序         除了在GUI界面中启动应用程序之外,在Android的命令行终端(可以使用adb shell进行连接)也可以使用am工具启动应用程序。         ...Android屏幕跳转的关系和方式如下图所示: 屏幕跳转的方式 5.4.1 Intent跳转方法         本示例是一个简单的屏幕之间的跳转,从一个屏幕跳转到另一个屏幕,在启动第二个屏幕后...5.5 菜单的使用         在Android中具有单独接口,用于在活动中使用菜单。本例使用一个菜单来控制按钮的背景颜色,其中可以了解如何在应用程序中使用菜单。

29920

Android 教程

第二,开发 Android 应用程序所需的所有工具都是免费的,可以网上下载。以下是开始开发 Android 应用程序需要用到的软件列表。...应用框架 应用框架层以 Java 类的形式为应用程序提供许多高级的服务。应用程序开发者被允许在应用中使用这些服务。 活动管理者 - 控制应用程序生命周期和活动栈的所有方面。...Activities 一个活动标识一个具有用户界面的单一屏幕。举个例子,一个邮件应用程序可以包含一个活动用于显示新邮件列表,另一个活动用来编写邮件,再一个活动来阅读邮件。...当应用程序拥有多余一个活动,其中的一个会被标记为当应用程序启动的时候显示。...public class MyReceiver extends BroadcastReceiver { } Content Providers 内容提供者组件通过请求从一个应用程序另一个应用程序提供数据

87520

超详细,Android AMS面试攻略,带你突破面试难关

参考简答: 在Android系统中,AMS通过监控应用程序的组件(Activity、Service、Broadcast Receiver)的状态变化,来管理应用程序的生命周期。...参考简答: 在Android中,每个应用程序都有自己的任务栈(Task Stack),用于管理其活动(Activity)。...任务栈是一个后进先出(LIFO)的堆栈结构,其中存储着应用程序启动的各个活动的实例。当一个新的活动启动时,它会被推入任务栈的顶部;当用户按下Back键或者活动被销毁时,该活动会被任务栈中弹出。...具体来说,AMS通过以下几个步骤来管理任务栈: 任务栈创建与销毁: 当用户启动一个新应用程序时,AMS会创建一个新的任务栈,并将该应用程序启动Activity压入该任务栈;当应用程序的所有活动都被销毁时...任务栈调度: 当用户从一个应用程序切换到另一个应用程序时,AMS会根据应用程序启动模式(standard、singleTop、singleTask、singleInstance)来决定如何调度任务栈。

21610

Android 10正式版发布,看看都有哪些新特性

用户可以左下角或右下角斜向滑动以启动 Google Assistant 助手,在触发的角落会有相应的 “小手柄” 指示器来作为视觉提示。...有关如何在应用程序中支持这些功能的详细信息,请参阅Android 10开发人员站点。...阻止不必要的干扰 Android 10防止应用程序后台启动,而后台的应用程序会出人意料地跳到前台,并从另一个应用程序转移注意力。 安全 在Android上,我们一直在评估系统的安全性。...通过和第三方的手机安全平台合作,我们分析师研究Gartner的2019年5月手机操作系统和设备的安全,一个比较的Android平台报告(需要订阅),得分最高的评级在26个30类别,提前在多个点网络安全身份验证和恶意软件保护...测试Android 10的隐私功能 测试的内容包括新的位置权限、范围存储、对后台活动启动的限制、对数据和标识符的更改等等。要开始查看顶级隐私更改清单,并查看隐私更改文档以了解更多测试领域。

1.8K20

速读原著-Android应用开发入门教程(Android应用程序的概念性描述)

第 5 章 Android应用程序的内容 5.1 Android应用程序的概念性描述 Android 应用程序包含了工程文件、代码和各种资源,主要由 Java 语言编写,每一个应用程序将被编译成Android...(1)活动(Activity) 活动是最基本的 Android 应用程序组件,在应用程序中,一个活动通常就是一个单独的用户界面。...(5)空(Empty)进程 不包含任何处于活动状态的应用程序组件。保留这种进程的唯一原因是,当下次应用程序的某个组件需要运行时,不需要重新创建进程,这样可以提高启动速度。...如果应用程序的代码以及运行情况考虑,可以关注 Android 的各种组件相对应的生命周期。 1....活动被“覆盖”的情景:Android活动一般都占据一个完整的屏幕,当前活动启动另外一个活动时,另一个活动将被启动到前台(Foreground),当前活动转入后台(Background),这时活动

97410

Android】期末简答题

onPause()这个方法在系统准备去启动或者恢复另一个活动的时候调用。...4.销毁:返回栈中移除之后,系统最喜欢的就是回收这种活动。 4.Android应用程序的四大核心组件分别是什么?...我的答案: 活动(activity)的四种启动模式 1.standard模式 它是活动默认的启动模式,在不进行显示制定的情况下,所有活动都会自动使用这种启动模式。...本地服务 --local service:服务运行在当前的应用程序里面 远程服务 --remote service:服务运行在其他的应用程序里面 14.如何实现本地服务绑定方式的启动与停止?...可以非常方便的以多种形式嵌入到其他应用程序中,静态库、动态库等。 4). 易于维护。 综上所述,SQLite的主要优势在于灵巧、快速和可靠性高。

95660

Android应用开发揭秘》连载3

我们称之为“活动”,在应用程序中,一个Activity通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件作出响应。...首先,我们需要在程序启动所默认的第一个界面中,加入一些Log函数,用于显示和输出Log信息,以帮助我们分析程序的执行流程,代码清单3-12所示。...这里我们看到,当程序Activity01界面进入Activity02界面时,并不是马上将Activity01销毁,而是待Activity02启动之后将Activity01停止并销毁。...这里我们看到,当程序Activity02界面返回Activity01界面时,并不是马上将Activity02销毁,而是待Activity01启动之后将Activity02停止并销毁。...首先彻底分析了上一章的HelloAndroid项目,其项目目录结构、文件功能等方面分析了Android应用程序的基本框架,其次逐一分析了构成Android应用程序的4个模块(Activity、Intent

85520

Android Studio 4.1 发布啦

查看模型元数据和使用情况 要查看导入模型的详细信息和获取有关如何在应用程序中使用它的说明,可以在项目中双击模型文件以打开模型查看器页面,该页面显示以下内容: 1、模型:模型的高级描述 2、Tensors...示例所示,Android Studio 创建了一个 MobilenetV1025160Quantized 用于与模型进行交互的类。 如果模型没有元数据,屏幕将仅提供最少的信息。...最初的4.1版本开始已禁用应用程序启动分析,未来在即将发布的版本中将启用此选项。解决方法是,可以使用 Perfetto 独立命令行分析器来捕获启动配置文件。...要导航到另一个事件,请表中选择另一行。 Display data :在“Display”部分,SurfaceFlinger 和 VSYNC 的新时间线可以帮助开发者调查应用程序UI中的渲染问题。.../studio/profile/cpu-profiler Windows用户:如果在分析应用程序时线程活动时间轴中缺少标签,请参阅 https://developer.android.com/studio

6.4K10

Android 渗透测试学习手册 第三章 Android 应用的逆向和审计

我们还将使用工具( Apktool,dex2jar 和 jd-gui)来逆向应用程序。 我们将进一步学习如何通过逆向和分析源代码来寻找 Android 应用程序中的各种漏洞。...Android 应用程序由各种组件组成,它们一起创建可工作的应用程序。 这些组件是活动,服务,广播接收器,内容供应器和共享首选项。...意图(Intent):这些组件用于将两个或多个不同的 Android 组件绑定在一起。意图可以用于执行各种任务,例如启动动作,切换活动启动服务。...,输出展示了存储在应用程序中的注释: 在这里,我们还可以使用 MWR 实验室的另一个名为 Drozer 的工具,以便在 Android 应用程序中找到泄漏的内容供应器漏洞。...在这里,我尝试系统中读取一些文件,/etc/hosts和/proc/cpuinfo,它们默认存在于所有的 Android 实例中,因为它是基于 Linux 的文件系统。

98510
领券