`
liujianguangaaa
  • 浏览: 235129 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论
文章列表
Android IPC 通讯机制源码分析----Albertchen Binder通信简介:     Linux系统中进程间通信的方式有:socket, named pipe,message queque, signal,share memory。Java系统中的进程间通信方式有socket, named pipe等,android应用程序理所当然可以应用JAVA的IPC机制实现进程间的通信,但我查看android的源码,在同一终端上的应用软件的通信几乎看不到这些IPC通信方式,取而代之的是Binder通信。Google为什么要采用这种方式呢,这取决于Binder通信方式的高效率。 ...
我将用API IAudioFlinger:::setMode的调用过程来演示Android IPC的运作,AudioFinger 是程序media_server的一个Service. (1)Service Manager 的启动(service_manager.c) service_manager 为其它进程提供service管理,它必须在其他服务运行之前启动。int main(int argc, char **argv){struct binder_state *bs;void *svcmgr = BINDER_SERVICE_MANAGER;bs = binder_open(128* ...
美的程序:简明:代码少,逻辑质朴,算法精炼,一个程序只做一件事情,只有必要功能——好像是 impossible mission。一致:提示信息的一致,UI 的一致。容错:程序很稳健,适应各种恶劣情况,以 C 这种语言只有靠长时间补丁才能达到虚假的稳健。高效:尽可能高效。 简评一下几种版本管理工具:CVS, VSS:没有变更集概念,仅此一点就可以安息了。GIT: 复杂的 UI,超前的理念SVN: 慢,代码库膨胀剧快,客户端常有小问题,错误信息稀里糊涂Mercurial: 也趋向于复杂了Bazaar:UI 古怪Darcs: 慢
android:autoLink  设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)   android:autoText 如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。   android:bufferType 指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,  也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1、这里2。 ...
SharedPreferences是Android中存储简单数据的一个工具类。可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下(data/data/包名/shared_prefs/)自己定义的xml文件中。一、简介  它提供一种轻量级的数据存储方式,通过eidt()方法来修改里面的内容,通过Commit()方法来提交修改后的内容。二、重要方法public abstract boolean contains (String key) :检查是否已存在该文件,其中key是xml的文件名。ed ...
有了framework后,我们不用面对赤裸裸的OS API,做一些重复而繁杂的事情。但天下没有免费的午餐,我们还是需要学会高效正确的使用不同的framework,很多处理某一特定问题的手法在不同的framework中,用起来都会有所不同的。 ...
在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方法是在配置文件里改! 一、在代码中设置: view plaincopy to clipboardprint? package com.android.tutor;   import android.app.Activity;   import android.os.Bundle;   import android.view.Window;   import android.view.WindowManager;   public class OpenGl ...
如果想在自定义的View上面显示Button 等View组件需要完成如下任务 1.在自定义View的类中覆盖父类的构造(注意是2个参数的) public class MyView2 extends View{   public MyView2(Context context,AttributeSet att)  {super(context,att);   }   public void onDraw(Canvas c)     {  // 这里绘制你要的内容    } } 2.定义布局文件 <?xml version="1.0" encodin ...
在前面的2篇文章Android读写XML(上)——package说明 、Android读写XML(中)——SAX 中想必大家对XML文件读取的方法已经比较熟悉了,在这里我们就不多说了,直接说明如何将信息写成XML文件,首先介绍Andoid SDK中的相关类。 类 说明 XmlSerializer Define an interface to serialziation of XML Infoset.定义一个接口来实现XML信息的串行化。 什么是串行化? 对象的串型化,也有叫做对象的序列话,并不只是简单的把对象保存在存储器上,它可以使我们在流中传输对象,使对 ...
在Android读写XML(上)——package说明 中, 详细介绍了使用 DOM方法读取XML文档,由于使用DOM方法需要将整个XML文档加载内存中,对系统资源占用比较多,这对内存比较紧张的Android系统来说,使用 DOM方法读取XML文档会有很大的限制。 使用SAX方法读取XML,对内存资源的占用的比较少,因此在嵌入式设备中极力推荐使用,Android也不例外,本篇幅详细说明Android中如何使 用SAX读取XML文档。 SAX采用基于事件驱动的处理方式,它将XML文档转换成一系列的事件,由单独的事件处理器来决定如何处理。为了了解如何使用SAX API处理XML文档 ...
XML 经常用作 Internet 上的一种数据格式,其文件格式想必大家都比较清楚,在这里我结合Android平台,来说明Android SDK提供的读写XML的package。 首先介绍下Android SDK与Java SDK在读写XML文件方面,数据包之间的关系。Android 平台最大的一个优势在于它利用了 Java 编程语言。Android SDK 并未向标准 Java Runtime Environment (JRE) 提供一切可用功能,但它支持其中很大一部分功能。Java 平台支持通过许多不同的方式来使用 XML,并且大多数与 XML 相关的 Java API 在 A ...
使用<include /> 标签来重用layout代码 如果在一个项目中需要用到相同的布局设计,可以通过<include /> 标签来重用layout代码,该标签在android开发文档中没有相关的介绍。在android主屏程序中 用到了这个标签: <com.android.launcher.Workspace android:id="@+id/workspace" android:layout_width="fill_parent" android:layout_height="fil ...
Android 系统 中具备6个模式 ,分别为一般启动模式(normal mode)、安全模式(safe mode)、恢复模式(recovery mode)、引导模式(bootloader mode)、fastboot模式和诊断模式(diagnostic mode)。 一般启动模式(normal mode)的功能 是正常启动手机 ,方法为关机状态下按电源键启动。 安全模式(safe mode)。此模式和正常启动一样,但没有登记Google ,所以不能访问Market或使用你的Google账号。操作方法为按住“menu”键,按电源键启动手机,直至手机启动完成松开“menu”键。 ...
一个有用的命令。有老兄们发的帖子里没有找到。所以就发过来了。希望有用。 希望大家能把一些有用而难找的命令发出来让大家共享。 cpio命令详细用法 cpio - 存取归档包中的文件 语法 Syntax cpio -o [ -aBLuvV ] [ -C bufsize ] [ -c | -H format ][ -K volumesize ] [ [ -O file [, file ... ] ] [ -M message ] ] [ -Pifd,ofd ] cpio -i [ -6AbBcdfkmnqrsStTuvV ] [-C bufsize ] [ [ -I file [ ...
ramdisk.img 是根文件系统.android是把root目录打包弄成这个东西的.所以可以把它解包,修改配置信息等.然后再重新打包好. 思路有了,开始干活.解包过程: 1  创建tmp 目录. 2  用mv命令改ramdisk.img 为ramdisk.cpio.gz 3  gzip -d ramdisk.cpio.gz  此时你会在当前目录看见ramdisk.cpio 4  把ramdisk.cpio 放到tmp目录下.  5  cpio -i -F ramdisk.cpio 如果幸运.你会看到一些文件和目录. 打包过程: 1  进入tmp目录 2  cpio -i ...
Global site tag (gtag.js) - Google Analytics