- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 Android 匿名共享内存驱动源码分析
Android系统的匿名共享内存Ashmem驱动程序利用了Linux的共享内存子系统导出的接口来实现,本文通过源码分析方式详细介绍Android系统的匿名共享内存机制。在Android系统中,匿名共享内存也是进程间通信方式的一种。相比于malloc和anonymous/named mmap等传统的内存分配机制,Ashmem的优势是通过内核驱动提供了辅助内核的内存回收算法机制(pin/unpin)。
2013-08-31 23:07:22 5699 3
原创 Android状态机源码分析
在Android系统中,经常使用状态机来处理不同状态下的行为动作。状态机是将对象的状态与行为封装在一起;可以解决庞大的分支语句带来程序阅读性差和不便于进行扩展问题,使整个结构变得更加清晰明了,降低程序管理的复杂性提高灵活度。Android系统的StateMachine机制是一个State模式的应用,StateMachine是一个分层处理消息的状态机,并且是能够有分层排列状态。构造状态机
2013-08-30 19:13:03 6713 1
原创 Android APN配置
APN概念 APN(Access Point Name),即“接入点名称”,用来标识GPRS的业务种类,目前分为两大类:CMWAP(通过GPRS访问WAP业务)、CMNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。是通过手机上网时必须配置的一个参数,它决定了您的手机通过哪种接入方式来访问网络。业务流程GPRS专网系统终端上网登录服务器平台的流程为: 1)用户
2013-08-29 16:37:33 10656 1
原创 Android dumpsys工具分析
dumpsys工具使用我们知道Android使用ServiceManager服务进程来管理系统所有的服务,在系统启动时,每个服务必须注册到ServiceManager进程中,那如何查看系统运行了那些服务呢?ServiceManager提供了listServices接口来罗列出系统注册的所有服务。Android提供了dumpsys工具来dump出所有的服务信息,通过以下命令可以查看系统注册的所有
2013-08-27 10:26:43 7172
原创 Android Phone模块 三
RILpublic RIL(Context context, int preferredNetworkType, int cdmaSubscription,int phoneId) { super(context); mCdmaSubscription = cdmaSubscription; mPreferredNetworkType = preferredNetworkType
2013-08-26 10:31:19 2988
原创 Android Wifi自动打开并连接
WIFI自动打开并连接到指定的热点:do { try { //连接到指定的wifi热点 mAdmin.connectWifi(SSID, PWD, WifiCipherType.WIFICIPHER_WPA); Thread.sleep(20 * 1000); } catch (InterruptedException e) { // TODO Auto-generated
2013-08-23 10:32:52 7465
转载 UICC,USIM卡与SIM的区别
USIM卡与SIM的区别SIM卡(Subscriber Identity Module) ,即用户识别卡,是全球通数字移动电话的一张个人资料卡。它采用A 级加密方法制作,存储着用户的数据、鉴权方法及密钥,可供GSM系统对用户身份进行鉴别。同时,用户通过它完成与系统的连接和信息的交换。 移动电话只有装上SIM卡才能使用。“SIM卡”有大小之分,功能完全相同,分别适用于不同类型的GSM移动
2013-08-23 10:32:13 26701
原创 Android Phone模块 二
SipPhoneSipPhone实现相关类图SipPhone对象虽然也派生自PhoneBase,但实现机制及实例化过程与其它Phone对象大大不同。 SipPhone对象的实例化通过PhoneFactory的makeSipPhone的接口调用SipPhoneFactory的makePhone进行实例化。SipPhone对象的实例化调用也不是在PhoneAp
2013-08-22 18:18:00 2332
原创 Android Phone模块 一
电话管理是Android 系统支持的重要的业务之一,提供接听电话,收发短信、电话薄、网络事件监听、读取用户信息等功能。 从下到上可以分为四层:硬件驱动层、RIL daemon层、Telephony框架实现层、 PHONE应用层,下层为上层提供服务,每层之间采用不同的通讯方式交互。RIL daemon层实现为单独的一个开机启动的进程(rild命令),通过AT命令硬件驱动层交互,T
2013-08-22 18:13:18 5333
原创 Android电话来电流程源码分析
Android的Phone设计的相当复杂,只有了解了Phone的设计框架才能把握电话的拨号或来电流程,在Android电话拨打流程源码分析中已经分析介绍了电话拨打流程,这里介绍一下电话的来电流程。要理解这节内容,首先要知道Android电话的层次设计Framework层的RIL中的RILReceiver线程从rild服务进程中读取modem发送上来的来电消息等信息,通过消息注册-响
2013-08-21 10:50:18 9778 2
原创 Android电话拨打流程源码分析
前面分析了电话拨号界面及电话呼叫界面,由于Android的电话Phone设计的很复杂,因此先从UI层入手分析。想要了解Android的电话拨号UI,请查看Android电话拨号UI分析,电话拨号UI在Contacts包中。想要了解Android电话呼叫UI,请查看Android电话Phone UI分析,该UI在Phone包中,了解完电话想要UI后,还必须首先了解Android的Phone设计框
2013-08-16 17:58:02 14511 4
原创 Android电话Phone设计框架介绍
Android的Phone进程并不是在点击Luncher上的图标启动的,而是在系统开机启动时,又ActivityManagerService启动的。Phone的源码位于packages\apps\Phone。在Phone的AndroidManifest.xml文件配置了如下属性:<application android:name="PhoneApp"
2013-08-06 09:40:00 13075 2
原创 Android电话拨号UI分析
界面加载过程DialtactsActivity.javaprotected void onCreate(Bundle icicle) { this.setTheme(R.style.DialtactsTheme); super.onCreate(icicle); final Intent intent = getIntent(); fixIntent(intent);
2013-08-06 09:23:48 8907 2
原创 Android电话Phone UI分析
Android4.1电话拨号界面布局设计:<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/incall_screen" android:layout_width="match_parent" android:layout_height=
2013-08-06 09:22:39 5363 3
Android下拉刷新实现一源码
2013-09-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人