- 博客(91)
- 资源 (8)
- 收藏
- 关注

原创 Android 4.2 Wifi Display核心分析 (一)
作者: Wolf Geek 转载请说明出处 上一回,主要介绍了有关WifiDisplay设备连接和建立数据流的流程,这一回将接着向底层前进。由于涉及的内容较多,这里仅仅理清一个大概的头绪,细节的部分将不再展开,如果有什么错误的地方我会及时更正。 当Source端通过RemoteDisplay.cpp的构造函数注册了Wifidisplay处理线程,并且ANe
2013-01-14 11:06:13
21591
15

原创 Android 4.2 Wifi Display 之 Settings 源码分析(二)
作者:mznewfacer 时间:2012年12月7日 在上一回我们一块分析了WifiDisplay有关设备发现的部分,这一回将主要针对设备连接和建立数据流展开分析。首先,回顾下应用层,当用户在搜寻完设备后,可以选择设备进行连接,当然正在进行连接或已经连接配对的设备,再次点击配置后,会弹出对话框供用户选择断开连接。packages/apps/Setting
2012-12-07 12:58:12
15527
4

原创 Android 4.2 Wifi Display 之 Settings 源码分析(一)
有关核心分析请见这里~作者: mznewfacer 时间:2012年11月27日 所有内容都是自己的分析,现在是简单罗列代码位置及整体结构,细节的东西会慢慢充实,欢迎讨论纠正,我会及时更改。一、简单背景 简单背景:随着无线互联的深入,不管是蓝牙、WIFI或者各种基于此的规范不管是UPNP还是DLNA都随着用户的需求得到了很大的发展,google 自从a
2012-11-27 17:31:47
37657
3
转载 Android init.rc BOOTCLASSPATH
BOOTCLASSPATH 不添加jar包路径,系统启动后将无法找到自定义JAVA层系统服务的相关类,这是由于自定义系统服务jar包是Dalvik所需的基本库文件。如果不添加相关路径会报如下错误:W/dalvikvm( 2582): Unable to resolve superclass of Lcom/android/server/yourdir/yourService; (1633)
2013-03-06 16:06:34
11268
转载 Android异步消息框架
自从rtsp从stagefright播放器移植到NuPlayer之后,你会发现相关的类中存在许多类似下面的代码:================================11111111111111==========================NuPlayerDriver::NuPlayerDriver() : mLooper(new ALooper) {
2013-01-14 11:32:15
7624
1
转载 Android Launcher 分析
1. Launcher的启动过程从网络上找了一段关于Launcher的启动过程的文章,作为学习Launcher的背景知识:Linux kernel启动以后会通过app_main进程来初始化android Runtime Java运行环境,而zygote是Android的第一个进程。所有的android的应用以及大部分系统服务都是通过zygote fork出来的子进程(我现在看到的只
2012-12-21 21:21:27
3245
转载 Android 强指针和弱指针
<!--@page {margin:0.79in}p {margin-bottom:0.08in; direction:ltr; color:#000000; text-align:justify; widows:0; orphans:0}--> 在Android的源代码中,经常会看到形如:sp、wp这样的类型定义,这其实是Andr
2012-12-07 14:04:02
6921
转载 Android系统启动过程
首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰)Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。启动的过程如下图所示:(图片来自网上,后面有地址) 下面将从Android4.0源码中,和网络达人对此的总结中,对此过程加以学习了解和总结,以下学习过程中代码片段中均有省略不完整,请参照源码。一 I
2012-11-26 16:52:29
3464
转载 Android Binder IPC分析
1.binder通信概述binder通信是一种client-server的通信结构,1.从表面上来看,是client通过获得一个server的代理接口,对server进行直接调用;2.实际上,代理接口中定义的方法与server中定义的方法是一一对应的;3.client调用某个代理接口中的方法时,代理接口的方法会将client传递的参数打包成为Parcel对象;4.代理接口将
2012-11-24 20:29:02
2184
转载 Android C++层的内存回收机制
1关于C++ Layer的内存回收机制Android C++层的内存收回主要是通过三个类来实现,分别是RefBase,sp,wp;SP和WP是两个智能指针模板类,sp是strong pointer,wp则是weak pointer,亦我们常说的强引用和弱引用;实例化sp和wp这两个模板类的类型必须是派生自RefBase的类1.1 RefBase类因为这个类拥有对内存回收机制的默认
2012-11-23 12:19:51
3653
转载 Android高手进阶教程(二十五)之---Android 中的AIDL!!!
大家好,好久不见,今天要给大家分享的是android aidl的使用。在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的. 在J2EE中,采用RMI的方式, 可以通过序列化传递对象.
2012-11-21 13:16:29
2135
转载 Android AIDL使用详解
1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信 2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/docs
2012-11-21 12:38:43
2129
转载 android进程间通信:使用AIDL
欢迎阅读本文,你能关注本文,你知道你需要进程间通信、需要AIDL(以及Binder),那么可以默认你对这些概念已经有了一些了解,你(大致)知道它们是什么,它们有什么用,所以为了节约大家的眼力和时间,在此我不复制粘贴网上泛滥的博客或者翻译冗长的android文档。 关于AIDL的介绍在文档:docs/guide/developing/tools/aidl.html 关于I
2012-11-21 10:39:33
2339
转载 linux的压缩/解压缩命令(tar,gzip等)及示例
tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思);-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。-z :是否同时具有 gzi
2012-11-16 11:36:25
2496
转载 Android SDK编译 ——如何将自己源代码加入android.jar
在Android源码编译成功的基础上重新编译带自己API的android.jar需要进行以下几步操作。1 添加自己源代码,在Android源码frameworks/base目录下新建一个文件夹保存代码,如tv,以包的形式命名添加的文件所在的路径,如/tv/java/android/tv,添加的java文件开头定义的包即是编译成功的class文件所在的包。2 修改makefile文件
2012-11-02 10:14:02
7859
翻译 数学论文自动生成器(骗局)
2012年8月3日,一位来自“南部北达科塔大学霍普分校”的"马戏·拉刺客"教授(Marcie Rathke) 向一份(可敬)的期刊——理论数学进展 Advances in Pure Mathematics 投递了一篇论文。这篇论文的题目是: “Independent, Negative, Canonically Turing Arrows of Equations and Pr
2012-10-25 13:49:11
6516
转载 Android JNI 使用的数据结构JNINativeMethod详解
Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数。其中很重要的区别是Andorid使用了一种Java 和 C 函数的映射表数组,并在其中描述了函数的参数和返回值。这个数组的类型是JNINativeMethod,定义如下:typedef struct {const char* name;const char* signature;void* fnP
2012-10-22 12:56:23
2074
转载 Android Eclipse 源码工程 调试
一、搭建Eclipse源码工程1、 进入源码目录下的development/ide/eclipse,把android-formatting.xml ,android.importorder , .classpath拷贝到源码目录Eclipse需要一个目录列表来搜索Java文件,称作"Java Build Path”,保存在.classpath文件中【eclipse工程的配置文件,方
2012-08-24 09:44:05
3692
转载 adb 常见错误问题解决
1. 无法识别设备adb kill-server然后再adb start-server2. Segmentation fault, pm install /data…直接使用adb向模拟器中安装app时报这个错误。原因很简单,使用豌豆荚下载下来的app很多是用中文命名的,改成英文名重新adb install. 至于为什么,我想设计adb的工程师们根本没有考虑中文支持吧。
2012-08-24 09:35:52
21961
转载 linux分割压缩包与解压分割后的压缩包
文章的标题起的有点绕口,像执行一个命令管道,呵呵,由于服务器设置问题导致无法上传过大的压缩包,这种压缩包又不能断点续传,所有只能切割了,在windows下使用软件能够很轻松的搞定,那么在Linux下怎么解决呢,只需要两条命令就能轻松搞定:先来看第一条命令:cat jordan_shoes.tar.gz|split -b 100m – jordan_shoes.tar.gz.解释:—
2012-08-22 22:23:05
11425
转载 Linux文件查找命令find,xargs详述
I find this useful for just quickly seeing which files contain a search time. I would normally limit the files searched with a command such as :find . -iname '*php' | xargs grep 'string' -slAnothe
2012-08-22 15:36:30
1571
转载 Android模拟器永久删除卸载系统APK(Windows & Linux平台)
蓝色内容表示在Linux平台上的操作。1. Goto …….\android-sdk_r08-windows\android-sdk-windows\platforms\android-9\images (this is the default folder for SDK Platform Android 2.3, API 9, revision 1), cop
2012-08-22 14:51:07
1864
转载 Activity多次调用getActionBar()返回的是同一个ActionBar对象吗?
在应用程序开发中,经常看到在Activity中多次调用getActionBar()方法,然后对直接对其进行设置,次数多了,我不禁想问一句,多次调用getActionBar()并对其进行操作,实际上是用到一个对象了吗?下面从源码的角度进行分析。public ActionBar getActionBar() { initActionBar(); return
2012-08-20 14:39:47
3231
转载 在Android4.0中Contacts拨号界面分页方式剖析
在Android4.0中,Contacts 拨号界面的分页方式是怎么样的呢?是通过传统的TabHost+tab的方式吗?不是的,而是通过ActionBar + tab+ view Pager的方式实现的。具体的实现详情,请见下面的详细剖析。在DialtactsActivity类中,通过向ActionBar中添加Tab的方式实现分页,每页显示的内容,则通过ViewPager对象设置的Ad
2012-08-20 13:42:18
2525
转载 如何使用Eclipse开发Android源码
使用Eclipse开发Android源码说明:这篇文章是介绍如何开发Android源码,包括各平台的源码而非仅仅Google释放的源码,我采用的是MSM7267. 前提不需要SDK,不需要ADT,通过整个工程的编译都可以生成。为了在Eclipse中调试源码如Phone、MMS、Contact…… 由于以前都没接触过Java、Eclipse、ADT... 这些
2012-08-20 13:27:07
1341
转载 Android 上百实例源码分析以及开源分析
原文出处:http://blog.youkuaiyun.com/banketree/article/details/7734476由于资料文件较大,所以分了几个包下载。Android 初学中阶高阶书籍_集合打包1Android 初学中阶高阶书籍_集合打包2Android 初学中阶高阶书籍_集合打包3Android 初学中阶高阶书籍_集合打包4Android 上百实例源码分析以及开源
2012-08-16 14:40:40
12283
1
转载 Android Mms专题之:Mms源码结构
文章出处:http://blog.youkuaiyun.com/hitlion2008/article/details/7055025从软件的功能角度来讲,Mms分为对话列表,消息列表,短信编辑,彩信编辑,短信显示,彩信显示和配置。从实现的角度来看,它分为GUI展示层,发送/接收,彩信解析,彩信附件,信息数据等,这些分类对应着源码中的各种包。源码导航Mms的源码的位置在于android/pac
2012-08-15 14:09:01
1048
转载 android sdk 编译--如何将源代码加入android.jar以及make原理
首先是这个问题如何修改。 在/frameworks/base/Android.mk中,找到如下行: packages_to_document := 在该变量的赋值语句最后添加 xxxxx (这里是你的包的名称,比如com/sina/ui,其实这里就是你的源代码在/frameworks/base//java/下面的一部分路径,只要能够唯一的匹配到你的代码即可) 即可。
2012-08-14 10:22:18
6000
转载 Android中的Parcel是什么
Parcel,翻译过来是“打包”的意思。打包干什么呢?是为了序列化。 如果要在进程之间传递一个整数,很简单,直接传就是行了;如果要传一个字符串,就稍微复杂了点:需先分配一块可以容纳字符串的内存,然后将字符串复制到内存中,再传递(新手可能问:为啥不直接把字符串的引用传过去呢?学过C/C++的地球人都知道:进程有自己的内存地址空间,一个进程中的1000地址可能在另一个进程中是100000,j
2012-08-09 14:31:52
13526
5
转载 android adb push 与 adb install的比较(两种安装APK的方法)
文章出处:http://blog.youkuaiyun.com/liranke/article/details/6795984一般的,Android 应用程序有两种安装方法:1. 将应用程序的apk文件push到手机中,用如下命令: adb push xxxx.apk /system/app.2. 用adb install xxxx.apk进行安装
2012-08-08 09:23:31
1331
转载 Android Launcher 分析
1. Launcher的启动过程从网络上找了一段关于Launcher的启动过程的文章,作为学习Launcher的背景知识:Linux kernel启动以后会通过app_main进程来初始化android Runtime Java运行环境,而zygote是Android的第一个进程。所有的android的应用以及大部分系统服务都是通过zygote fork出来的子进程(我现在看到的只有n
2012-08-07 14:37:40
1076
转载 fuzzy hash(模糊哈希)算法
最近看一篇paper,无意中看见了一种模糊哈希算法——fuzzy hash算法。于是立刻去翻阅相关资料,整理出如下文章。 首先说说哈希算法。 大家都知道函数实际上就是一种映射,本质是将一个集合通过对应法则f映射到另一个集合。 而哈希算法是一个特殊的函数,他具有的特点是,定义域是一个不确定的无限集合而值域是一个有限集合。简单来说,哈希算法就是将一个任意大的数据项(如计算机文
2012-06-07 16:15:03
8743
转载 xml特殊字符处理 如&
写了个request2XML的方法,每当数据中有'<'、'&'符号时,封装的XML就无法解析。发现了XML里的CDATA属性,问题迎刃而解!在XML文档中的所有文本都会被解析器解析。 只有在CDATA部件之内的文本会被解析器忽略。----------------------------------------------------- 解析数据 XML 解析器通常情况下会处理XML文档中的所有文本
2012-05-31 16:05:28
6745
1
转载 HTTP POST GET 本质区别详解
一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETEURL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST
2012-05-27 17:31:49
801
转载 PHP图片上传程序设计
Store binary data into SQL Database<?php if (isset($_POST['submit'])) {$form_description = $_POST['form_description'];$form_data_name = $_FILES['form_data']['name'];$form_data_size = $_FILES['f
2012-05-24 22:41:07
1151
转载 php上传图片到mysql并显示
mysql可以直接保存二进制的数据,数据类型是blob。 通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之 处就在于两者所需要保存的数据量不同。MySQL数据库使用专门的字段来保存大容量的数据,数据 类型为BLOB。 MySQL数据库为BLOB做出的定义如下:BLOB数据类型是一种大型的二进制对象,可以保存可
2012-05-24 22:32:22
10467
4
原创 Arduino之任务调度
作者:mznewfacer (Wolf Geek) 时间:2012年 05月23日 转载需说明出处,谢谢 这两天想让arduino ethernet即做服务器又做客户端来完成我的一些需求,想了想单片机上可以这么搞么?这是我自己首先提出的问题。经搜索,其实还是有并行实现方案的,我还没仔细研究,有时间了再详细讲,arduino 这里有提
2012-05-23 13:28:04
7253
转载 常用硬件术语(二)
这里只简要介绍罗列基本概念,具体内容直接查相关专业资料。低压差交流稳压器 低压差交流稳压器是一种输入电压大于输出电压的直流交流稳压器。它具有输出电压稳定,低输出纹波,低噪声的特点。LDO还具有封装体积小,外接元件少的特点。由于它的这些优点,LDO被广泛应用于通讯设备、汽车电子产品、工业和医疗仪器设备。当前随着大量的便携式电子设备的发展,比如PDA、移动电话、MP3等被广泛应用于人们的生活工
2012-05-01 15:31:55
1327
转载 硬件常用术语
由于硬件经常就是缩写命名,所以直接上英文General terminologyPage Historyvoltage dividers - also known as potential dividers, they divide voltage across the components of a circuit. Voltage (out) is less than vol
2012-04-30 22:57:48
999
转载 SPI总线介绍
SPI定义 一、SPI是英文Software Process Improvement的缩写,中文意思是软件过程的改进。它是CMM(还有其他能力模型)中的一个重要概念,CMM模型的目的就是要改进一个组织的过程,提高过程能力,所以叫做SPI-软件过程改进。 二、SPI是英文Service Provider Interface的缩写。中文意思是服务提供商接口。满足某种服务标准的供应商提供
2012-04-30 22:54:45
801
Android 初学中阶高阶书籍_集合打包2
2012-08-16
Android 初学中阶高阶书籍_集合打包3
2012-08-16
Android 上百实例源码分析以及开源分析 集合打包2
2012-08-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人