摘要:简单分析下wifi相关类,首先了解几个主要概念AsyncChannel简单理解:AsyncChannel,就是借助Messenger机制,让两个不同的handler之间进行通信。AsyncChannel类有两个Messenger对象:mSrcMessenger,mDstMessenger。mSrcMessenger,一般用于封装源端handler对象mDstMessenger,一般用于封装目的端handler对象而后,调用AsyncChannel的sendMessage方法时,执行两个操作:1.msg.replyTo=mSrcMessenger;//重设消息的replyTo值2.mDstMes 阅读全文
wpa_supplicant 初始化
2013-07-28 22:59 by ...平..淡..., 2757 阅读, 0 推荐, 收藏, 编辑
摘要:几个重要的结构体介绍:1.structwpa_interface---Parametersforwpa_supplicant_add_iface().wpa_interface对应网络接口。因为wpa_supplicant支持多个网络接口,所以可能有多个wpa_interface结构体,可以通过命令行指定不同的接口。wpa_supplicant在main函数开始的地方会进行遍历!(参考代码main.c)2.structwpa_global---Internal,globaldataforall%wpa_supplicantinterfaces.Thisstructureisinitialize 阅读全文
Android stateMachine分析
2013-07-28 21:42 by ...平..淡..., 1273 阅读, 0 推荐, 收藏, 编辑
摘要:StateMachine与State模式的详细介绍可以参考文章:Android学习 StateMachine与State模式下面是我对于StateMachine的理解:先了解下消息处理。看下StateMachine::sendMessage方法。不管BT/Wifi中,都有继承StateMachine的子类(BluetoothAdapterStateMachine.java/WifiStateMachine.java),在某些类中,会创建这些类的对象,当需要发送消息时,会调用它们的sendMessage方法,即调用父类StateMachine的sendMessage方法。 /** ... 阅读全文
LayoutInflater 学习
2013-06-15 23:18 by ...平..淡..., 348 阅读, 1 推荐, 收藏, 编辑
摘要:LayoutInflater类作用:实例化一个布局XML文件到其相应的视图对象。Instantiates a layout XML file into its correspondingViewobjects. It is never used directly. Instead, usegetLayoutInflater()orgetSystemService(String)to retrieve a standard LayoutInflater instance that is already hooked up to the current context and correctly 阅读全文
屏蔽home键、重写home键操作
2013-06-05 23:02 by ...平..淡..., 3050 阅读, 0 推荐, 收藏, 编辑
摘要:背景:按下home键后,进入图库通过WifiDirect分享,此时获得的Intent为android.intent.action.MAIN,而按下back键进行操作,此时Intent是android.intent.action.SEND/android.intent.action.SEND_MUITIPLE分析:back键和home键的区别 KeyEvent.KEYCODE_BACK (back键)back键默认行为是finish处于前台的Activity,将该task从栈中弹出。即Activity的状态为Destroy状态为止,再次启动该Activity是从onCreate开始的(不会调用o 阅读全文
《深入理解Android(卷2)》笔记 7.第四章 深入理解PackageManagerService
2013-06-05 21:27 by ...平..淡..., 3082 阅读, 0 推荐, 收藏, 编辑
摘要:知识点1:PKMS启动流程SystemServer.java::ServerThread::run--->PKMS::main--->PKMS::构造函数如下,在PKMS的main函数中将PKMS服务添加到到ServiceManager中。public static final IPackageManager main(Context context, boolean factoryTest, boolean onlyCore) { PackageManagerService m = new PackageManagerService(context, factoryTest, . 阅读全文
(转)DBus API的使用(讲的很清晰)
2013-03-05 18:50 by ...平..淡..., 3424 阅读, 0 推荐, 收藏, 编辑
摘要:转自DBus 入门与应用--基本概念 上(C API 级别的使用观点)、DBus 入门与应用--基本概念 下(C API 级别的使用观点)转载请注明出处 作者:唐风DBus是用来进行进程间通信的。下面这张图展示了一些DBus的大部分东西,但是它太复杂了:DBus 本身是构建在 Socket 机制之上。真正的通信还是由 Socket 来完成的。DBus 则是在这之上,制定了一些通信的协议,并提供了更高一层的接口,以更方便应用程序之间进行数据的交互。在DBus的体系中,有一个常驻的进程 Daemon,所有进程间的交互都通过它来进行分发和管理。所有希望使用 DBus 进行通信的进程,都必须事先连上 阅读全文
(转)当Note2遇上NFC
2013-02-21 18:37 by ...平..淡..., 387 阅读, 0 推荐, 收藏, 编辑
摘要:挺好玩的,转过来~~转自Timothy's Space话说,这个世界是由懒人驱动的。 什么?你不信?世界上的很多发明,都是因为懒人而来的……懒得爬楼梯,于是人们发明了电梯……懒得走路,于是人们制造了汽车、火车和飞机……懒得每次去计算,于是人们发明了计算机……懒得出去听音乐会,于是人们发明了CD、随身听和各种数码影音设备……说了这么多,其实是想向大家介绍一下Note2的一项新功能:NFC,当Note2遇上了NFC,又会为我这样的懒人,带来什么样的便利呢?开始之前,先得介绍介绍什么是NFC,这是来自网上的一段解释:近场通信(Near Field Communication,NFC),又称近 阅读全文
apk获得Android系统权限的方法
2013-01-10 14:25 by ...平..淡..., 26446 阅读, 0 推荐, 收藏, 编辑
摘要:想写一个重启系统的apk(reboot.apk),因为没有权限,所以编译出来的apk无法达到效果。网上查到的方法讲的不太清楚,至少我是这么觉得,因为我照着做,试了好多次才成功。下面是我尝试过并成功的两个方法,总结如下。方法1:通过将项目作为一个模块,放到Android系统源码中进行编译~~~步骤如下:1.在应用程序的AndroidManifest.xml中的manifest节点中加入"android:sharedUserId="android.uid.system"这个属性。<manifest xmlns:android="http://schem 阅读全文
由学习SystemServer引发的extern "C "探究
2013-01-07 13:58 by ...平..淡..., 461 阅读, 0 推荐, 收藏, 编辑
摘要:在学习SystemServer时,根据函数调用发现,从SystemServer.java::main--->init1--->com_android_SystemServer.cpp::android_server_SystemServer_init1--->system_init时,system_init函数在cpp文件的最上面声明了extern "C" int system_init();但是没有包含头文件啊之类的,那系统是如何找到system_init函数的呢?上网查了一些资料,发现《条件编译和extern "C"的用法总结》文章 阅读全文