前言 关于AMS,原计划是只写一篇文章来介绍,但是AMS功能繁多,一篇文章的篇幅远远不够.这一篇我们接着来学习与AMS相关的ActivityTask和Activity栈管理. 1.ActivityStack ActivityStack是一个管理类,用来管理系统所有Activity的各种状态,其内部维护了TaskRecord的列表,因此从Activity任务栈这一角度来说,ActivityStack也可以理解为Activity堆栈.它由ActivityStackSupervisor来进行管理的,而…
ActivityManagerService要管理四大组件,那四大组件就必须在AMS中有存在的形式,这里先从AMS 如何管理Activity 谈起: Activity在AMS 中存在的形式为ActivityRecord: AMS以Task的方式管理Activity,Task在AMS存在的形式为TaskRecord:TaskRecord中的mActivities用栈的方式管理ActivityRecord: TaskRecord在AMS中依靠ActivityStack去管理,从命名来看,Activi…
前言 此前在Android系统启动流程.应用进程以及深入四大组件这三个系列文章中,都提及到了AMS,但都没有系统的来讲解它,本文就以AMS为主来进行讲解,其中会有一些知识点与这些系列文章有所重合,这里会尽量做到详尽讲解.阅读此文章前,最好阅读相关文章中列出的系列文章,否则我不敢保证这篇文章你能看的懂. 1.概述 AMS是系统的引导服务,应用进程的启动.切换和调度.四大组件的启动和管理都需要AMS的支持.从这里可以看出AMS的功能会十分的繁多,当然它并不是一个类承担这个重责,它有一些关联类,这在文…
初识Activity,跟着教程学习敲了一遍这一章的内容,下面根据目录结构总结知识点: 一.活动是什么 上篇博文中我们提到了Android四大组件,其中有一个Activity,我们将之称为活动.活动是最容易吸引用户的地方,它包含用户界面的组件,主要和用户进行交互. 我们可以用HTML页面的例子理解: 每一个HTML页面中有各种HTML元素,例如按钮.文本框等,这些元素存在HTML网页中并通过HTML展示.或与我们交互, 我们可以把一个HTML网页看成一个活动,它也是用来包含各种组件与用户交互的.…
在进行BlackBerry程序开发的时候,BlackBerry提供了一个管理Screen的栈,用来从任何地方来关闭位于最上一层的Screen,使用UiApplication.getUiApplication().getActiveScreen()来得到位于最上一层的Screen的实例,并且使用UiApplication.getUiApplication().popScreen()来关闭一个Screen或关闭当前最上一层的Screen,但是Android却未提供相应的功能,只能在一个Activit…
一.背景 在android开发过程最经常使用的组件非activity莫属. 通过分析activity的各种跳转,执行同学能够分析用户的各种行为.更重要的一点是在做插件化的过程中,我们经常会对activity进行各种反射,来实现各种需求. 二.实现 2.1 通过对"android.app.ActivityThread"进行反射.获取android系统的activity栈 遍历activity栈能够得到当前应用中的全部存活的activity. Log.e("Baseactivty…
我们知道,一个APP是由若干个Activity组成的,那么各个Acitivity中肯定需要进行跳转以及传递数值以保证App的运行,现总结一下多个Activity之间的跳转和值传递. 显式Intent跳转 AndroidManiFest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/…
Fragment  VS  Activity Android是在Android 3.0 (API level 11)开始引入Fragment的. 可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块. 可以把Fragment设计成可以在多个Activity中复用的模块. 当开发的应用程序同时适用于平板电脑和手机时,可以利用Fragment实现灵活的布局,改善用户体验. 如图…
创建 Android 项目 在命令行创建 Android 项目需要用到 android 工具(该工具由 Android SDK 提供,位于 <sdk>/tools/ 目录下.).它能自动生成一个项目目录,其中包含若干默认应用程序文件,存案文件,配置文件和一个构建文件. 命令用法[1]: $ android create project \ --target <target_ID> \ --name <your_project_name> \ --path path/to…
在公司里接手了一个后期的项目,由于项目前期对activity栈管理的不够谨慎,所以导致了在某些情况下程序退出的时候没有将activity栈清除掉.在网上找到的无非就是那几种例子,都不是最好的解决办法.今天尝试了一种方式,感觉效果还是可以的. 代码: ActivityManager am = (ActivityManager)getSystemService(getApplication().ACTIVITY_SERVICE); List<ActivityManager.AppTask> app…
任务和返回栈 应用通常包含多个 Activity.每个 Activity 均应围绕用户可以执行的特定操作设计,并且能够启动其他 Activity. 例如,电子邮件应用可能有一个 Activity 显示新邮件的列表.用户选择某邮件时,会打开一个新 Activity 以查看该邮件. 一个 Activity 甚至可以启动设备上其他应用中存在的 Activity.例如,如果应用想要发送电子邮件,则可将 Intent 定义为执行“发送”操作并加入一些数据,如电子邮件地址和电子邮件. 然后,系统将打开其他应…
Activity Intent IntentFilter 一理论概述 一. Activity 用来提供一个能让用户操作并与之交互的界面. 1.1 启动 startActivity(Intent intent):一般启动Activity startActivityForResult(Intent intent,int requestCode):带回调启动Activity onActivityResult(int reqCode,int resultCode,Intent data):回调方法 se…
相关文章 Android系统启动流程系列 Android应用进程系列 Android深入四大组件系列 前言 此前在Android系统启动流程.应用进程以及深入四大组件这三个系列文章中,都提及到了AMS,但都没有系统的来讲解它,本文就以AMS为主来进行讲解,其中会有一些知识点与这些系列文章有所重合,这里会尽量做到详尽讲解.阅读此文章前,最好阅读相关文章中列出的系列文章,否则我不敢保证这篇文章你能看的懂. 1.概述 AMS是系统的引导服务,应用进程的启动.切换和调度.四大组件的启动和管理都需要AMS…
[Android]安卓四大组件之Activity(二) 前言 在这篇文章之前,我已经写过了一篇有关Activity的内容,是关于activity之间的页面跳转和数据传递,而这篇文章着重强调的是Activity中的有关生命周期的理解. 1.什么是生命周期? 在之前学习Java的时候,Java中的一个类的对象就涉及到了生命周期,包括它的生成.作用.回收等等. 在Android中也有差不多的生命周期的概念,是针对Activity的. 首先,给出安卓开发文档中对生命周期的介绍:了解 Activity 生…
前言 在本系列的上一篇文章中,我们学习了WMS的诞生,WMS被创建后,它的重要的成员有哪些?Window添加过程的WMS部分做了什么呢?这篇文章会给你解答. 1.WMS的重要成员 所谓WMS的重要成员是指WMS中的重要的成员变量,如下所示.frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java final WindowManagerPolicy mPolicy; final IActiv…
目录截图: 1.activity_main.xml 主界面效果: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:scrollbars="vertical" android:layout_width="match_…
什么是Activity Activity是Android应用程序核心组件中最基本的一个,是用户和程序交互的窗口,一个activity通常对应一个单独的视图,一个APP由一个或者多个activity构成,activity用于显示信息给用户,并且之间可以相互进行跳转,activity之间的跳转有返回值. 每一个activity都被定义为一个独立的类,他继承了Android中的android.app.Activity,在Activity类中将使用setContentView方法来显示由视图控件组成的用…
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 getChildFragmentManager() 来获取FragmentManger. 虽然看起来和在activity中添加fragment差不多, 但因为fragment生命周期及管理恢复模式不同, 其中有一些需要特别注意的地方. 本文内容还包括了从Fragment迁移到v4.Fragment代码中…
最近准备系统的重新整理复习一下Android的各方面的知识,本着知识分享的原则,我就把梳理过程中一些东西给记录下来,权当一个学习笔记吧. 下面步入正题..... 什么是Activity Activity作为Android四大组件之一,也是其中最重要的一个组件.作为一个与用户交互的组件,我们可以把Activity比较成为windows系统上的一个文件夹窗口,是一个与用户交互的界面.再进一步说,当我们拿起Android打开拨号功能,显示出拨号盘的界面其实就是一个Activity:当然,可以更大范围的…
写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载   zbarLib编译project  project下载0积分 bug 在2.3的系统中Holder须要设置type,否则会黑屏(感谢网友[(α ⒎待sんа)294439435]) com.example.qu.MainActivity的第50行mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 今天发现 在com.exampl…
一.Activity的基本概念 Activity是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和用户进行交互,比如打电话,照相,发送邮件,或者显示一个地图!Activity用于显示用户界面,用户通过Activity交互完成相关操作 , 一个App允许有多个Activity. 二.Activity的生命周期 Activity生命周期是每一个Android开发者都必须掌握的,当我们深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序,让我们的程序拥有更好的用户体验 2.…
android解析Json数据是比较常见的一种操作.也是客户端和服务器进行数据交互的桥梁.下面就来看一看在android中解析JSon数据的方法吧. 首先要想获得Json数据,就必须访问相关的网络接口.下面是一些常见的网络接口: webservice工厂接口 http://www.36wu.com 快递查询接口http://webservice.36wu.com/ExpressService.asmx ip查询接口http://webservice.36wu.com/ipService.asmx…
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装Activity跳转的方法以及实现Activity任务栈管理. 效果图   代码分析 ActivityJump:封装Activity跳转以及任务栈增删改查操作方法 ActivityManager : Activity任务栈的管理 常用方法: AddToTack(Activity mActivity) :将Activity添加到任务栈中,一般在Activity的OnCreate方法中调用 LogAllActivityNames…
一.返回栈 1.Android是通过任务(Task)来管理活动,一个任务就是一个返回栈内所有活动的集合. 2.返回栈是一个后进先出的数据结构,每启动一个新的活动,该活动就会覆盖原来的活动,位于栈顶位置.当销毁活动后,原来被覆盖的活动的就会重新出现位于栈顶.系统总是会展示位于栈顶的活动给用户. 活动在返回栈中进栈和出栈的示意图如下: 进栈: 出栈: 二.活动状态 每个 Activity在生命周期中最多可能会有4种状态: 1.运行状态 当活动位于返回栈的栈顶时,活动是处于运行状态.系统最不愿意回收这…
0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维码生成和扫描的功能. 本篇转载自:http://blog.csdn.net/hai_qing_xu_kong/article/details/51260428   1.    Zxing的使用 从github上下载项目后,可以看到整体代码结构如下: 我们只需将Zxing包下的所有代码copy一份到我…
前言 在此前的系列文章中我们学习了WindowManager体系和Window的属性,这一篇我们接着来讲Window的添加过程.建议阅读此篇文章前先阅读本系列的前两篇文章. 1.概述 WindowManager对Window进行管理,说到管理那就离不开对Window的添加.更新和删除的操作,在这里我们把它们统称为Window的操作.对于Window的操作,最终都是交由WMS来进行处理.窗口的操作分为两大部分,一部分是WindowManager处理部分,另一部分是WMS处理部分.我们知道Windo…
一.创建一个新的Activity 1.android的四大组件都要在清单文件里面配置 2.如果想让你的应用有多个启动图标,你的activity需要这样配置 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </inte…
本系列文章将第三方的登录分享功能进行二次封装,统一接口调用,简化了接不同平台登录分享的步骤. 0 系列文章 系列一 Android SDK的二次封装和使用 系列二 源码解析 系列三 微信SDK接入 系列四 QQ SDK接入 系列五 新浪微博 SDK接入 1 前言 现在有市场上又好几家都做了社会化分享组件,比如ShareSDK,Umeng等.唯一的缺点就是,必须得注册相应服务平台的账号.无法单纯使用客户端SDK. 本系列文章即开源实现了社会化的登录分享,统一对外接口.会分别从如何使用.源码解析.各…
学过android的人都知道,activity是最常用的四大组件之一,但你真的了解透彻activity了吗?接下来,本人将从activity的正常和异常生命周期.启动模式.IntentFilter匹配原则.activity的过渡动画等方面做个总结. 一. activity的生命周期 正常生命周期 1.正常打开单个Activity,然后退出应用: 这种情况是最普通的状况,Activity的生命周期会按照上图从上到下的方式走.即:onCreate –> onStart –> onResume –&…
内容来源:Android开发艺术探索第一章:Activity的生命周期与启动模式 不能在onPause中做重量级的操作,因为必须执行完成以后新Activity才能Resume.onPause和onStop都不能执行耗时的操作,尤其是onPause.这就意味着,我们应当尽量在onStop中做操作,而使得新Activity尽快显示出来并切换到前台. onSaveInstanceState和onRestoreInstanceState:Android保存数据的机制.Activity被销毁后调用onSa…