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

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

(1)活动(Activity) 活动是最基本的 Android 应用程序组件,在应用程序中,一个活动通常就是一个单独的用户界面。...Android 的一个活动一般对应界面中的一个屏幕显示,可以理解成一个界面,每一个活动在界面上可以包含按钮、文本框等多种可视的 UI 元素。...活动的生命周期 活动是 Android 中最重要、最基础的组件,用户在界面上看到的一个个可以切换的屏幕界面就是 Android中的活动。活动的生命周期如图 1 所示。 ?...活动被“覆盖”的情景:Android 的活动一般都占据一个完整的屏幕,从当前活动启动另外一个活动时,另一个活动将被启动到前台(Foreground),当前活动转入后台(Background),这时活动的...在转入后台时,onStop()是否被调用取决于活动是否被完全覆盖,在新的活动有透明部分时,转入后台的活动依然“可见”,其他情况下(较多数的情况)活动均进入不可见状态(被完全覆盖)。

1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android编程实战】StrandHogg漏洞复现及原理分析_Android系统上的维京海盗

    这段字符 接下来新建Innocent类和Attack类,两个类分别显示activity_main和attack这两个布局 我们假设Attack这个类为恶意活动,我不想让用户在启动恶意软件时看到恶意活动而怀疑软件的真实意图...这个flag 带有该Flag的Intent创建的活动将不显示过度动画 接着我调用了startActivities方法先后启动attack和innocent这两个活动 注意,Innocent这个活动在Attack...#reparent 官方文档的解释:当下一次将启动 Activity 的任务转至前台时,Activity 是否能从该任务转移至与其有相似性的任务 —“true”表示可以转移,“false”表示仍须留在启动它的任务处...,该活动能从后台转移至与其有相似性的任务,也就是同样转移至Task_1, 而此时Task_1已经在前台了,相当于Activity_1在Activity_2启动之后也启动了,从而到达了最顶层,而用户最终看到的活动也就是...接着使恶意活动的allowTaskReparenting属性为true,这样就能在合法应用中的活动转至前台时,使得恶意活动同样转至前台 至此,整个攻击流程结束 0x03 漏洞利用及其危害 在0x01中

    2.9K40

    volatile关键字在Android中到底有什么用?

    上周六在公众号分享了一篇关于Java volatile关键字的文章,发布之后有朋友在留言里指出,说这个关键字没啥用啊,Android开发又不像服务器那样有那么高的并发,老分享这种知识干啥?...另外也有朋友留言说,虽然知道volatile关键字的作用,但是想不出在Android开发中具体有什么用途。 所以我准备写篇文章来剖析一下这个关键字,顺便回答一下这些朋友的疑问。...可以看到,这里有两个线程,分别通过两个CPU的运算单元来执行程序,但它们是共享同一个内存的。现在CPU1从内存中读取数据A,并写入高速缓存,CPU2也从内存中读取数据A,并写入高速缓存。...这里我给大家举一个常见的示例吧,在Android上我们应该都编写过文件下载这个功能。...好了,关于volatile关键字的作用,以及它在Android开发中具体有哪些用途,相信到这里就解释的差不多了。

    62120

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

    在单任务模式下启动活动时,系统将搜索是否已存在合适的任务。...如果是,任务将被分派到前台以重用任务。如果任务中已存在要启动的活动的实例,请清除该实例上方的所有活动,并向用户显示该实例。如果现有任务中没有要启动的活动实例,请在任务顶部启动一个实例。...如果存在,它会将此实例的任务安排到前台,并重用此活动的实例(此任务中只有一个活动)。如果它不存在,它将打开一个新任务,并在此新任务中启动此singleInstance模式的活动实例。...好吧,其中有一个LinearLayout和两个FrameLayout。...ViewGroup:View类的子类,可以有子控件,可以视为容器。Android UI中的控件按照这种分层树结构堆叠。有两种方法可以创建UI布局。

    69120

    Android实现进程保活方案解析

    Android 6.0 引入了待机模式(doze),一旦用户拔下设备的电源插头,并在屏幕关闭后的一段时间内使其保持不活动状态,设备会进入低电耗模式,在该模式下设备会尝试让系统保持休眠状态。...Android 8.0 进一步加强了应用后台执行限制:一旦应用进入已缓存状态时,如果没有活动的组件,系统将解除应用具有的所有唤醒锁。...如果是负数,表示该进程为系统进程,肯定不会被杀掉, 如果是0,表示是前台进程,即当前用户正在操作的进程,除非万不得已,也不会被杀掉; 如果是1,表示是可见进程,通常表示有一个前台服务,会在通知栏有一个划不掉的通知..." android:exported="true" android:process=":service" /> 同时启动两个service,共享同一个NotificationID,并且将他们同时置为前台状态...,此时会出现两个前台服务,但通知管理器里只有一个关联的通知。

    9.3K30

    关于 Android 进程和线程,你必须了解的东西

    2、可见进程 — Visible process   没有任何前台组件、但仍会影响用户在屏幕上所见内存的进程 托管不在前台、但仍对用户可见的 Activity(已调用其 onPause() 方法) 托管绑定到可见...这些进程对用户体验没有直接影响,系统可能随时终止它们,以回收内存供前台进程、可见进程或服务进程使用。 5、空进程 — Empty process 不含任意活动应用组件的进程。...Android 中的线程形态 除了 Thread 本身以外,在 Android 中可以扮演线程角色的还有很多,比如 AsyncTask 和 IntentService,同时 HandlerThread...不同形式的线程虽然都是线程,但是它们仍然有不同的特性和使用场景。AsyncTask 封装了线程池和 Handler,它主要是为了方便开发者在子线程中更新 UI。...缺点有两个 加上锁机制会让 UI 访问的逻辑变得复杂 锁机制会降低 UI 访问的效率 鉴于这两个缺点,最简单且高效的方法就是采用单线程模型来处理 UI 操作,对于开发者来说也不是很麻烦,只是需要通过 Handler

    84420

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

    在转入后台时,onStop()是否被调用取决于Activity是否被完全覆盖,在新的Activity有透明部分时,转入后台的Activity依然“可见”,其他情况下(较多数的情况)Activity均进入不可见状态...对于Android 应用程序,控件称为View。在Android中,在处理UI中的各种元素的时候,两个程序中的要点为:     1. 得到布局文件(XML)中的控件句柄     2....这样既可实现点击的时候实现相应的功能,在点击的函数中,将通过Text的句柄对其进行控制。         在Android的控件使用方面,这两个编程方面要点是:     1....本示例包含了两个活动,在UI 上它们就是两个屏幕,分别为跳转的源和目的,因此在AndroidManifest.xml 中分别定义。         ...两个活动的名称分别为Forwarding和ForwardTarget,由于第二个活动没有intent-filter,因此在程序中只能由第一个活动来启动。

    33320

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

    引言 在Android开发领域,ActivityManagerService (AMS) 是一个至关重要的系统服务,负责管理应用程序的生命周期和任务栈。...活动状态管理: 当应用程序处于前台活动状态时,AMS会监控用户与应用程序的交互,比如按下Home键、切换到其他应用等。...参考简答: 在Android中,每个应用程序都有自己的任务栈(Task Stack),用于管理其活动(Activity)。...AMS会根据任务栈的优先级来决定是否将其置于前台,并调度任务栈中的活动。 问题: 解释Android中的任务栈(Task)以及任务Affinity的概念。...参考简答: 在Android系统中,进程的优先级主要分为以下几个等级(由高到低): 前台进程(Foreground Process): 这些进程正在与用户交互,比如当前显示的Activity所在的进程、

    74010

    Android入门教程之Activity(生命周期,启动...)

    /> 现在TextView有了身份证,我们在activity中就可以找到它。用的是findViewById方法。...onStart()方法:活动由不可见到可见的时候被调用,表示Activity正在启动,此时Activity可见但不在前台。 onResume()方法:活动准备好和用户进行交互时调用。...onStop()方法:在活动完全不可见的时候调用。表示Activity即将停止。 onDestory()方法:在活动被销毁之前调用,表示Activity即将销毁,常做回收工作、资源释放。...前台生存期:onResume方法与onPause方法就是前台生存期,在前台生存期内,活动处于运行状态,此时可以与用户交互。 4. 说下Activity处于onPasue()下可以执行那些操作?...有两个调用时机,分别是singleTop模式下与singleTask模式下启动Activity。

    1.1K00

    大话企业级android读书笔记(二)

    举例来说,有一个线程运行在后台从网络上下载数据,它可能会在onCreate()中创建线程,在onDestroy()中结束线程。...活动的可视生命时间,从调用onStart()到相应的调用onStop() 。在这期间,用户可以在屏幕上看见活动,虽然它可能不是运行在前台且与用户交互。在这两个方法之间,你可以保持显示活动所需要的资源。...活动的前台生命时间,从调用onResume()到相应的调用onPause()。...因此,这两个方法的代码应当是相当轻量级的。 下面这个图解释了这三个循环和状态之间状态的可能路径。着色的椭圆表示活动的主要状态,矩形表示当活动在状态之间转换时你可以执行的回调方法。 ?...其实,没有标记为Killable的活动也是可以系统被杀掉的,不过这仅仅发生在极端困难的情况下,没有有任何其他资源可用。

    1K50

    Android 系统开发_四大组件篇 -- 探讨 Activity 的生命周期

    系统仍然会为这种活动保持相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。 4、销毁状态 当一个活动从返回栈种移除后就变成了销毁状态。...在这由于文字很多,我总结了关于Android一系列的学习资料及思维导图免费分享给大家,文末有领取!...前台生存期:活动在 onResume() 方法和 onPause() 方法之间所经历的,就是前台生存期。...在前台生存期内,活动总是处于运行状态的,此时的活动是可以和用户进行交互的,我们平时看到和接触最多的就是这个状态下的活动。 我们看下官方给出的 Activity 生命周期的示意图: ?...疑问 我们在之前分析 Activity 的生命周期的时候曾经提到过:如果一个活动进入了 onStop (停止)状态,是有可能被系统回收的!

    46920

    android 栈

    onPause :当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。...活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。...如果用户使用后退按钮返回的话,或者前台的Activity结束,在栈上的Activity将会移上来并变为活动状态。...Activity状态 一般认为Activity有以下四种状态: 活动的:当一个Activity在栈顶,它是可视的、有焦点、可接受用户输入的。...在android里,有4种activity的启动模式,分别为: standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。

    58140

    什么是activity的生命周期_activity切换生命周期

    只有完全理解了活动的生命周期,在今后的Android编程中才会更加得心应手,这也是面试Android开发类工作时的一个重要考点。...为了让Android App在活动(Activity)生命周期的各个阶段之间导航转换,Activity类提供了6个核心回调方法:onCreate()、onStart()、onResume()、onPause...这个方法在每次活动最开始启动时都会运行,并且在每一个活动中只允许这个方法出现一次。 ● (2)onStart()。 这个方法在Activity由不可见变为可见的时候调用。...当活动开始运行并转入不可运行时,这个方法开始运行,因为应用会为Activity进入前台并为支持交互做准备。 ● (3)onResume()。...● (3)前台生存期。Activity在onResume()方法和onPause()方法之间所经历的就是前台生存期。

    96010

    谷歌 Android Q Labs技术分享会,腾讯WeTest福利抢先看!!!

    随着Android Q Beta 3 亮相 Google I/O'19后,谷歌将于5月20日举办Android Q Labs线下活动,将有众多 Android 开发者,OEM厂商及其他合作伙伴到场进行技术交流分享...服务介绍       腾讯WeTest除了提供谷歌官方非公开API扫描功能,提早发现产品使用的 Android SDK中是否有非公开 API,帮助用户提早规避新系统适配问题,现还支持免费真机调试及标准兼容服务...另一项重要变更是限制应用从后台启动,防止应用突然从后台跳转至前台并挡住前台应用。在 Beta 3 中,我们不再向应用发送 toast 警告,而是直接禁止应用启动。...另外,我们还扩展了对人脸识别等被动验证方法的支持,并加入了隐式和显式两个类型的身份验证流。...Android Q Beta 3有除了上述几点,还有更多的新变化,对于有新版本、新产品要发布的游戏应用等厂商来说无疑是个新挑战。

    95440

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

    onCreate 方法有一个参数,该参数可以为空( null ),也可以是之前调用onSaveInstanceState ()方法保存的状态信息。   ...四、 onPause :当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。   ...活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。...在一些情况下,onPause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。   六、onRestart :当处于停止状态的活动需要再次展现给用户的时候,触发该方法。   ...-->在AndroidManifest.xml文件中使用元素完成注册。

    82020

    详解Android中的四大组件之一:Activity详解

    process 空进程-Empty process 前台 前台process是与用户交互的控件的应用程序,处于“活动”状态的Activity。...空 空进程,在资源需要的时候常常被杀掉。 Android的任务栈 App启动时,系统会创建一个任务栈,栈也被叫做Task。...正常模式下的栈是后进先出,在AndroidManifest.xml中启动,通过android:launchMode进行设置的,有四种模式standard、singleTop、singleTask、singleInstance...2)其他App以singleTask模式启动该Activity时,会创建一个新的任务栈,如果启动模式为singleTask的Activity已经在一个任务栈中,那么启动后,后台的这个任务栈将一起切换至前台...结语 本文主要讲解 详解Android中的四大组件之一:Activity详解 下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注 小礼物走一走 or 点赞

    83230

    Activity 的 36 大难点,你会几个?「建议收藏」

    android:process=":xxx" 5.1.5 空进程:Empty process 不含有任何的活动的组件。...一个进程满足下面任何一个条件都被认为是可视的: 寄宿着一个不是前台的活动,但是它对用户仍可见(它的 onPause() 方法已经被调用)。...举例来说,这可能发生在,如果一个前台活动在一个对话框(其他进程的)运行之后仍然是可视的,比如输入法的弹出时。 寄宿着一个服务,该服务绑定到一个可视的活动。...一般地有很多后台进程运行着,因此它们保持在一个 LRU( least recently used ,即最近最少使用,如果您学过操作系统的话会觉得它很熟悉,跟内存的页面置换算法 LRU 一样)列表以确保最近使用最多的活动的进程最后被杀...在 Android 中,如果你的应用程序有一段时间没有响应,系统会向用户显示一个对话框,这个对话框称作应用程序无响应对话框。

    79420

    Android M 特性 Doze and App Standby模式详解

    3.退出Doze模式(系统退出休眠,所有的应用程序恢复正常活动): 用户唤醒装置移动,打开屏幕 或者设备连接电源 4.Doze有哪些限制?...Doze影响到AlarmManager闹钟和定时器管理活动,在Android6.0引入了两个新方法:setAndAllowWhileIdle() 和setExactAndAllowWhileIdle()...,调用两个方法可以在Doze模式下让系统响应定时任务 Doze模式下限制了网络的连接,如果应用程序依赖于实时信息,那么这个将影响App的体验。...该App当前有一个前台进程(或包含一个活动的前台服务,或被另一个activity或前台service使用); 3....Google Cloud Messaging(GCM)是一个云到设备的服务,可以让你支持实时在云端服务和Android设备上应用程序之间的消息传递。

    7.3K11
    领券