android
mznewfacer
这个作者很懒,什么都没留下…
展开
-
Android下fastcv搭建
首先fastcv是高通的东西,由于高通产权比较严,高通的任何东西翻译的话都需要他们律师的审核,本文只做学习之用,无任何商业目的,特此声明!装双系统不好搞,毕竟配置有限,毕业设计又不好老换系统,虚拟机实在太慢,于是cygwin+eclipse+win7常规的不说了官网上都有,我自己操作时有两个错误,记录一下,以备后用,1.android 下面的版本控制工具repo+git, 在c原创 2012-02-26 23:22:52 · 4127 阅读 · 0 评论 -
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 · 3666 阅读 · 0 评论 -
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 · 21852 阅读 · 0 评论 -
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 · 2052 阅读 · 0 评论 -
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 · 7826 阅读 · 0 评论 -
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 · 2169 阅读 · 0 评论 -
Android系统启动过程
首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰)Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用。启动的过程如下图所示:(图片来自网上,后面有地址) 下面将从Android4.0源码中,和网络达人对此的总结中,对此过程加以学习了解和总结,以下学习过程中代码片段中均有省略不完整,请参照源码。一 I转载 2012-11-26 16:52:29 · 3451 阅读 · 1 评论 -
android进程间通信:使用AIDL
欢迎阅读本文,你能关注本文,你知道你需要进程间通信、需要AIDL(以及Binder),那么可以默认你对这些概念已经有了一些了解,你(大致)知道它们是什么,它们有什么用,所以为了节约大家的眼力和时间,在此我不复制粘贴网上泛滥的博客或者翻译冗长的android文档。 关于AIDL的介绍在文档:docs/guide/developing/tools/aidl.html 关于I转载 2012-11-21 10:39:33 · 2325 阅读 · 0 评论 -
Android AIDL使用详解
1.什么是aidl:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口icp:interprocess communication :内部进程通信 2.既然aidl可以定义并实现进程通信,那么我们怎么使用它呢?文档/android-sdk/docs转载 2012-11-21 12:38:43 · 2116 阅读 · 0 评论 -
Android高手进阶教程(二十五)之---Android 中的AIDL!!!
大家好,好久不见,今天要给大家分享的是android aidl的使用。在Android中, 每个应用程序都可以有自己的进程. 在写UI应用的时候, 经常要用到Service. 在不同的进程中, 怎样传递对象呢? 显然, Java中不允许跨进程内存共享. 因此传递对象, 只能把对象拆分成操作系统能理解的简单形式, 以达到跨界对象访问的目的. 在J2EE中,采用RMI的方式, 可以通过序列化传递对象.转载 2012-11-21 13:16:29 · 2125 阅读 · 0 评论 -
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 · 3620 阅读 · 0 评论 -
Android 4.2 Wifi Display 之 Settings 源码分析(二)
作者:mznewfacer 时间:2012年12月7日 在上一回我们一块分析了WifiDisplay有关设备发现的部分,这一回将主要针对设备连接和建立数据流展开分析。首先,回顾下应用层,当用户在搜寻完设备后,可以选择设备进行连接,当然正在进行连接或已经连接配对的设备,再次点击配置后,会弹出对话框供用户选择断开连接。packages/apps/Setting原创 2012-12-07 12:58:12 · 15466 阅读 · 12 评论 -
Android Launcher 分析
1. Launcher的启动过程从网络上找了一段关于Launcher的启动过程的文章,作为学习Launcher的背景知识:Linux kernel启动以后会通过app_main进程来初始化android Runtime Java运行环境,而zygote是Android的第一个进程。所有的android的应用以及大部分系统服务都是通过zygote fork出来的子进程(我现在看到的只转载 2012-12-21 21:21:27 · 3212 阅读 · 0 评论 -
Android异步消息框架
自从rtsp从stagefright播放器移植到NuPlayer之后,你会发现相关的类中存在许多类似下面的代码:================================11111111111111==========================NuPlayerDriver::NuPlayerDriver() : mLooper(new ALooper) {转载 2013-01-14 11:32:15 · 7598 阅读 · 1 评论 -
Android 4.2 Wifi Display 之 Settings 源码分析(一)
有关核心分析请见这里~作者: mznewfacer 时间:2012年11月27日 所有内容都是自己的分析,现在是简单罗列代码位置及整体结构,细节的东西会慢慢充实,欢迎讨论纠正,我会及时更改。一、简单背景 简单背景:随着无线互联的深入,不管是蓝牙、WIFI或者各种基于此的规范不管是UPNP还是DLNA都随着用户的需求得到了很大的发展,google 自从a原创 2012-11-27 17:31:47 · 37605 阅读 · 12 评论 -
Android 4.2 Wifi Display核心分析 (一)
作者: Wolf Geek 转载请说明出处 上一回,主要介绍了有关WifiDisplay设备连接和建立数据流的流程,这一回将接着向底层前进。由于涉及的内容较多,这里仅仅理清一个大概的头绪,细节的部分将不再展开,如果有什么错误的地方我会及时更正。 当Source端通过RemoteDisplay.cpp的构造函数注册了Wifidisplay处理线程,并且ANe原创 2013-01-14 11:06:13 · 21534 阅读 · 41 评论 -
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 · 1842 阅读 · 0 评论 -
Activity多次调用getActionBar()返回的是同一个ActionBar对象吗?
在应用程序开发中,经常看到在Activity中多次调用getActionBar()方法,然后对直接对其进行设置,次数多了,我不禁想问一句,多次调用getActionBar()并对其进行操作,实际上是用到一个对象了吗?下面从源码的角度进行分析。public ActionBar getActionBar() { initActionBar(); return转载 2012-08-20 14:39:47 · 3224 阅读 · 0 评论 -
如何使用Eclipse开发Android源码
使用Eclipse开发Android源码说明:这篇文章是介绍如何开发Android源码,包括各平台的源码而非仅仅Google释放的源码,我采用的是MSM7267. 前提不需要SDK,不需要ADT,通过整个工程的编译都可以生成。为了在Eclipse中调试源码如Phone、MMS、Contact…… 由于以前都没接触过Java、Eclipse、ADT... 这些转载 2012-08-20 13:27:07 · 1311 阅读 · 0 评论 -
Android内核详解之Low memory killer
Android在内存管理上与linux有些小的区别。其中一个就是引入了Low memory killer .1,引入原因 Android是一个多任务系统,也就是说可以同时运行多个程序,这个大家应该很熟悉。一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程序时,可以很快的启动。随着系统中保留的程序越转载 2012-03-02 20:29:11 · 17196 阅读 · 2 评论 -
linux双向链表分析之list_del中的技巧
原文出处z2007b http://blog.csdn.net/z2007b/article/details/6370383。linux内核的双向链表是比较经典的东西,网上分析链表的同志基本分析了99%,就差了1%。那就是list_del函数。先给出函数原型:#ifdef CONFIG_ILLEGAL_POINTER_VALUE# define POISON_POINTER_DEL转载 2012-03-02 14:42:46 · 3907 阅读 · 1 评论 -
Android HAL实例解析
一、本文源自刘洪涛,实际上源自台湾的Jollen的mokoid工程代码。二、HAL介绍现有HAL架构由Patrick Brady (Google) 在2008 Google I/O演讲中提出的,如下图。Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为了避开linux的GPL束缚。思路是把控制硬件的动作都放到了Android转载 2012-03-08 20:53:08 · 1829 阅读 · 0 评论 -
Ubuntu增加swap交换空间
编译android源码内存不够用,swap设置太小,只有256M。1.首先用命令free查看系统内 Swap 分区大小。 free -m total used free shared buffers cached Mem: 2012 1960 51 0 748 950 -/+ buffers/cache: 260 1751 Swap: 255 0 255转载 2012-03-08 21:47:49 · 6781 阅读 · 2 评论 -
LDD3源码分析之时间与延迟操作
转自:http://blog.csdn.net/liuhaoyutz/article/details/7412931本人在android内核中也验证过了这些例子,确实可用!好的基础文章值得分享!LDD3源码路径:examples/misc-modules/jit.c examples/misc-modules/jiq.c 本文分析LDD3第7章的示例程序j转载 2012-04-01 20:46:33 · 1125 阅读 · 0 评论 -
为Android加入busybox工具
原文地址:http://blog.csdn.net/liaoshengjiong/article/details/3957725我们可以通过两种方式进入Android的console:1. 直接执行命令emulator -shell;2. 在启动emulator后,通过命令adb shell进入。之后我们就可以使用一些linux下常用的命令了,如ls,cat等。然而转载 2012-03-20 14:00:02 · 1690 阅读 · 0 评论 -
DBus学习笔记
http://dotnet.cnblogs.com/page/76759/?page=1作者:Jerry_Chen 来源:www.meegoq.com 时间:2010-10-12 阅读:513 次 原文链接 [收藏] 整页浏览摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习转载 2012-04-18 21:24:52 · 12364 阅读 · 0 评论 -
java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问ob转载 2012-04-19 21:27:47 · 494 阅读 · 0 评论 -
android adb push 与 adb install的比较(两种安装APK的方法)
文章出处:http://blog.csdn.net/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 · 1310 阅读 · 0 评论 -
Android中的Parcel是什么
Parcel,翻译过来是“打包”的意思。打包干什么呢?是为了序列化。 如果要在进程之间传递一个整数,很简单,直接传就是行了;如果要传一个字符串,就稍微复杂了点:需先分配一块可以容纳字符串的内存,然后将字符串复制到内存中,再传递(新手可能问:为啥不直接把字符串的引用传过去呢?学过C/C++的地球人都知道:进程有自己的内存地址空间,一个进程中的1000地址可能在另一个进程中是100000,j转载 2012-08-09 14:31:52 · 13436 阅读 · 5 评论 -
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 · 5975 阅读 · 0 评论 -
Android Mms专题之:Mms源码结构
文章出处:http://blog.csdn.net/hitlion2008/article/details/7055025从软件的功能角度来讲,Mms分为对话列表,消息列表,短信编辑,彩信编辑,短信显示,彩信显示和配置。从实现的角度来看,它分为GUI展示层,发送/接收,彩信解析,彩信附件,信息数据等,这些分类对应着源码中的各种包。源码导航Mms的源码的位置在于android/pac转载 2012-08-15 14:09:01 · 1029 阅读 · 0 评论 -
在Android4.0中Contacts拨号界面分页方式剖析
在Android4.0中,Contacts 拨号界面的分页方式是怎么样的呢?是通过传统的TabHost+tab的方式吗?不是的,而是通过ActionBar + tab+ view Pager的方式实现的。具体的实现详情,请见下面的详细剖析。在DialtactsActivity类中,通过向ActionBar中添加Tab的方式实现分页,每页显示的内容,则通过ViewPager对象设置的Ad转载 2012-08-20 13:42:18 · 2515 阅读 · 0 评论 -
Android 上百实例源码分析以及开源分析
原文出处:http://blog.csdn.net/banketree/article/details/7734476由于资料文件较大,所以分了几个包下载。Android 初学中阶高阶书籍_集合打包1Android 初学中阶高阶书籍_集合打包2Android 初学中阶高阶书籍_集合打包3Android 初学中阶高阶书籍_集合打包4Android 上百实例源码分析以及开源转载 2012-08-16 14:40:40 · 12141 阅读 · 10 评论 -
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 · 11206 阅读 · 1 评论