- 浏览: 456117 次
- 性别:
- 来自: 成都
-
文章分类
- 全部博客 (377)
- Java (66)
- C++ (0)
- VC++ (0)
- .net (1)
- css (36)
- 数据库 (22)
- html (2)
- extjs (1)
- jpbm (0)
- javascript (31)
- 物资管理 (1)
- java基础 (5)
- C# (0)
- Android (56)
- window service (1)
- 其他 (2)
- Web服务器 (7)
- jbpm (1)
- eclipse (2)
- tomcat (3)
- java字符串与二进制的相互转化 (1)
- Oracle 数据库 (6)
- FreeMarker (8)
- 浏览器 (1)
- php (1)
- photoshop (6)
- spring (4)
- spring mvc (2)
- Acegi (1)
- webStorm 3.0 (4)
- Mongodb (8)
- mysql (9)
- 软件开发:需求分析 (1)
- 把Java程序作为Windows系统服务 (1)
- nodejs (4)
- json (1)
- 缓存 (1)
- J2ee (2)
- Flash报表 (1)
- MyEclipse+Maven+Tomcat (11)
- 生活 (1)
- Ubuntu (1)
- Bootstrap (1)
- jquery easy ui (2)
- 敏捷开发 (1)
- phone gap (1)
- rest (1)
- 移动开发 (22)
- Redis + Jedis + Spring (3)
- anroid (7)
- grunt 教程 (7)
- PhoneGap (2)
- sublime text (7)
- mariadb (1)
- linux (1)
- maven (2)
- jquery (1)
- ActiveMQ (1)
- LVS Nginx (1)
- nginx (6)
- ngnix (1)
- 爱因斯坦 (1)
- 天干地支 (1)
最新评论
-
muqingren:
...
Maven多模块布局实例详解 -
shutear:
解决了我的难题,谢谢分享!
Unable to load configuration. - action - file:/D:/studytool/apache-tomcat-6.0.16 -
702346318:
[img][/img][flash=200,200][/fla ...
CAS单点登录完整教程(上)【转】 -
liuguofeng:
PersonS631887934 写道学习中。。 有个问题想请 ...
js constructor属性 -
S631887934:
学习中。。 有个问题想请教楼主为什么要加上Person.pro ...
js constructor属性
在android中,Activity是四大组件中比较重要的一个(当然其他的也比较重要),那么android中是怎样管理这些activity的?应用的进程和主线程是怎么创建的,应用的消息循环又是在什么时候创建的?在这篇文章中将详细介绍: 先来看下涉及到的类,通过以下类图对整体先有个大概的印象: ActivityThread: ActivityThread主要用来启动应用程序的主线程,并且管理在应用端跟用户打交道的activity。在应用端的activity信息全部被存储在ActivityThread的成员变量mActivities中。 也就是说,在mActivities中,记录了应用程序创建的所有activity实例记录,对应的是ActivityRecord。 ActivityThread是怎么启动应用程序的呢?ActivityThread中有一个main函数,在这个里面,将启动应用程序并建立消息循环。在之前也介绍过,系统会为主线程自动创建消息循环。 在建立消息循环之前,会通过thread.attach(false)来初始化应用程序的运行环境,并建立activityThread和ActivityManagerService之间的桥mAppThread, mAppThread是IApplicationThread的一个实例。 注意:每个应用程序对应着一个ActivityThread实例,应用程序由ActivityThread.main打开消息循环。每个应用程序同时也对应着一个ApplicationThread对象。该对象是activityThread和ActivityManagerService之间的桥梁。 在attach中还做了一件事情,就是通过代理调用attachApplication,并利用binder的transact机制,在ActivityManagerService中建立了ProcessRecord信息。 之后通过该ProcessRecord就可以获得该ActivityThread中的所有ActivityRecord记录。下面会介绍。 ActivityManagerService: 在ActivityManagerService中,也有一个用来管理activity的地方:mHistory栈,这个mHistory栈里存放的是服务端的activity记录HistoryActivity(class HistoryRecord extendsIApplicationToken.Stub)。处于栈顶的就是当前running状态的activity。 我们来看一下Activity的startActivity方法的请求过程: 从该时序图中可以看出,Activity.startActivity()方法最终是通过代理类和Binder机制,在ActivityManagerService.startActivity方法中执行的。 那么在ActivityManagerService的startActivity中,主要做了那些事情?我们来看下里面比较重要的代码段: 涉及的主要类图: 再来看下ApplicationThread中的scheduleLaunchActivity方法: 在这个里面主要是根据服务端返回回来的信息创建客户端activity记录ActivityRecord. 并通过Handler发送消息到消息队列,进入消息循环。在ActivityThread.handleMessage()中处理消息。最终在handleLaunchActivity方法中把ActivityRecord记录加入到mActivities(mActivities.put(r.token,r))中,并启动activity(涉及到window、view、windowManager,详情请看handleResumeActivity()方法和上一篇关于window、WindowManager的介绍) 总结:
发表评论
-
Android GridView属性集合
2015-02-27 15:01 1128GridView的一些特殊属性: 1.andr ... -
Android在listview添加checkbox实现原理与代码
2015-02-26 23:09 621Android在listview添加checkbox如何实 ... -
listview 选中高亮显示实现方法
2015-02-26 23:08 930人人客户端有一个很好的导航栏,如下图所示,当点击左侧List ... -
Android -----listView的属性大全
2015-02-03 11:52 789... -
Android中<meta-data>的使用
2015-02-02 14:49 745http://blog.sina.com.cn/s/blo ... -
Android Activity的切换动画
2015-01-31 23:21 1558app中Activity之间跳转方式太单调有没有。。。想改变 ... -
GitHub 优秀的 Android 开源项目
2015-01-18 00:06 1285GitHub 优秀的 Android 开 ... -
Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面
2014-12-29 16:48 797感觉 Android 到处都是坑,每个地方都要把人折腾半天。 ... -
Android APK反编译详解(附图)
2014-09-27 22:46 692本文Android反编译教程,测试环境: Win7 Ult ... -
ActionBar样式解析
2014-09-26 15:58 1398Android的装饰风格有多种,这些风格的不同之处主要体现在 ... -
slidingMenu的使用教程
2014-09-24 22:32 1667开源项目SlideMenu使用详解,有需要的朋友可以参考下 ... -
Android ViewGroup.setDescendantFocusability函数
2014-09-22 22:40 786这个函数是在ViewGroup里定义的,主要用于控制chil ... -
android 制作9.png图片
2014-09-22 14:42 1182... -
No tab content FrameLayout found for id xxxxxxx
2014-09-21 23:28 941android 4.4 自己加上的 androi ... -
Android学习笔记:TabHost 和 FragmentTabHost
2014-09-21 22:43 1083TabHost 命名空间: ... -
FragmentTabHost切换Fragment时避免重复加载UI
2014-09-21 11:25 1015使用FragmentTabHost时,Fragment之间切 ... -
android源码查看 android-support-v4.jar
2014-09-21 10:45 1409想查看android-support-v4.jar的源码的时 ... -
Android Support v4、v7、v13的区别和应用场景
2014-09-20 18:52 824http://my.oschina.net/chengliq ... -
理解Fragment生命周期
2014-09-20 18:50 750官网帮助文档链接: http://developer.and ... -
: android.support.v4.app.SuperNotCalledException
2014-09-20 18:46 304009-20 18:44:40.842: E/AndroidR ...
相关推荐
Android ActivityManagerService 是 Android 系统中负责管理 Activity 生命周期的核心组件之一。它提供了一个 ArrayList mHistory 来管理所有的 Activity,Activity 在 AMS 中的形式是 ActivityRecord,Task 在 AMS ...
Android2.3 ActivityManagerService流程分析
标题“ActivityManagerService相关流程分析”指明了本文档探讨的重点是Android系统中用于管理Activity生命周期、任务栈(TaskStack)和进程管理的关键组件ActivityManagerService(AMS)。AMS是Android系统中一个...
ams注释源码,startActivity相关逻辑已添加注释!快速帮助你理解AMS的处理逻辑,该资源配合我的博客Android进阶 — ActivityManagerService模块分析(https://blog.csdn.net/jackzhouyu/article/details/109021412)
首先,我们来看如何创建和启动一个Service。Service的声明通常在AndroidManifest.xml文件中完成,然后在需要启动Service的地方调用Context.startService()或Context.bindService()方法。startService()用于一次性...
在Android应用开发中,`Service`和`Activity`是两个重要的组件。`Service`用于在后台执行长时间运行的任务,而`Activity`则负责用户界面交互。在某些场景下,我们可能需要在`Service`和`Activity`之间传递数据,比如...
通过理解和掌握Service与Activity的绑定机制,开发者可以更高效地利用Service来实现后台任务,提高应用的用户体验和稳定性。同时,源码阅读和工具使用能帮助开发者更好地诊断和优化Service的使用。
本示例"Android Service与Activity交互"旨在演示如何在Service启动后,通过线程进行异步操作,并在完成特定任务后,通过发送广播(Broadcast)通知Activity来更新用户界面。 首先,我们需要创建一个Service,通常在...
然后PackageManagerService去查询所有action为“android.intent.action.MAIN”并且category为“android.intent.category.LAUNCHER”的Activity,然后为每个应用程序创建一个快捷方式图标,并把程序信息与之关联。...
在Android应用开发中,Activity和Service是两个非常重要的组件,它们各自承担着不同的职责。Activity作为用户界面的主要载体,负责与用户进行交互;而Service则是在后台运行,不与用户界面直接互动,常用于执行长...
在Android应用开发中,Activity和Service是两个非常重要的组件。Activity负责用户界面的展示,而Service则用于在后台执行长时间运行的任务,不依赖用户界面。然而,在某些情况下,Activity需要与Service进行通信,...
android_的Activity和Service之间的通信
1. 创建 ActivityManagerService 实例:ActivityManagerService 是 Android 系统中最重要的系统服务之一,负责管理活动、服务和广播等。ActivityManagerService 的实例化是 SystemServer 的主要工作之一。 2. 创建 ...
在Android应用开发中,Service是用于执行长时间运行操作的一个组件,而Activity是用户与应用交互的界面。将Activity与Service绑定是一种常见的通信方式,尤其在需要在后台运行任务且需要与用户界面保持交互时。本...
3. 在 Android 应用程序框架层中,ActivityManagerService 是一个非常重要的接口,它不但负责启动 Activity 和 Service,还负责管理 Activity 和 Service。 Step 1. 无论是通过 Launcher 来启动 Activity,还是通过...
在Android应用开发中,Service是实现后台运行任务的关键组件,它可以独立于用户界面持续执行操作。...记得在应用的生命周期管理中正确处理Service和BroadcastReceiver的启动与停止,以避免资源浪费和内存泄漏。
在Android应用开发中,Activity和Service是两个至关重要的组件,它们各自承载着不同的功能和应用场景。本篇将深入探讨Activity和Service的生命周期以及如何利用Android Interface Definition Language (AIDL)进行...
android开机启动Activity/Service/App的三合一demo,本人写了一个小小demo,把如果开机自启动Activity、Service、APP写了下,欢迎下载。
- ApplicationThreadNative和ActivityStackSupervisor:负责应用程序进程与ActivityManagerService之间的通信。 - ActivityStack:管理Activity的启动栈和任务栈。 在Activity启动过程中,系统可能还会调用以下方法...
通过查看Android源码,我们可以了解到它们是如何创建和管理视图、如何响应触摸事件、如何与Activity协同工作等细节。这有助于我们编写更高效、更符合Android设计原则的代码。 在实际项目中,工具类往往扮演着重要...