![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 68
liuyahui312031
这个作者很懒,什么都没留下…
展开
-
Android基础 : Android Service[转]
很多情况下,一些与用户很少需要产生交互的应用程序,我们一般让它们在后台运行就行了,而且在它们运行期间我们仍然能运行其他的应用。为了处理这种后台进程,Android引入了Service的概念。Service在Android中是一种长生命周期的组件,它不实现任何用户界面。最常见的例子如:媒体播放器程序,它可以在转到后台运行的时候仍然能保持播放歌曲;或者如文件下载程序,它可以在后台执行文件的下载。让我们来看下如何创建Service:创建一个ServiceAndroid中已经定义了一个 ‘Service’类,所有其转载 2010-11-26 11:43:00 · 315 阅读 · 0 评论 -
android binder 讲解(二)
第一部分 Binder的组成 1.1 驱动程序部分驱动程序的部分在以下的文件夹中: Java代码 kernel/include/linux/binder.h kernel/drivers/android/binder.c binder驱动程序是一个miscdevice,主设备号为10,此设备号使用动态获得(MISC_DYNAMIC_MINOR),其设备的节点为: /dev/binder binder驱动程序会在proc文件系统中建立自己的信息,其文件夹为/proc/binder,其中包含转载 2011-01-25 15:00:00 · 1244 阅读 · 0 评论 -
android binder 讲解(一)
<br />下面进行详细讲述Android Binder机制问题,Binder机制是通过驱动的形式来实现,其实驱动程序的部分是保存在源代码的以下的文件中。<br /> <br />Android Binder机制大部分都是使用的IPC,进程间通信机制有很多种,例如linux中可以采用管道,消息队列,信号,共享内存,socket等,这些都可以实现进程间的通信。<br />Android Binder机制通信是基于Service与Client的,有一个ServiceManager的守护进程管理着系统的各转载 2011-01-25 14:56:00 · 2048 阅读 · 0 评论 -
Android基础 : Android Content Provider[转]
<br /><br /> Android应用程序可以使用文件或SqlLite数据库来存储数据。Content Provider提供了一种多应用间数据共享的方式,比如:联系人信息可以被多个应用程序访问。Content Provider是个实现了一组用于提供其他应用程序存取数据的标准方法的类。<br />应用程序可以在Content Provider中执行如下操作:<br /><br />查询数据<br />修改数据<br />添加数据<br />删除数据<br /><br />标准的Content Provi转载 2010-11-26 11:51:00 · 370 阅读 · 0 评论 -
Android传感器编程入门
<br />本讲内容:Android传感器编程入门,分别包括加速度传感器(accelerometer),陀螺仪(gyroscope),环境光照传感器(light),磁力传感器(magnetic field),方向传感器(orientation),压力传感器(pressure),距离传感器(proximity)和温度传感器(temperature)<br />一、前言<br />我很喜欢电脑,可是笔记本还是太大,笔记本电脑再小还是要弄个小包背起来的,智能手机则不同,它完全就是一个手机,可以随意装在转载 2011-01-20 13:20:00 · 4266 阅读 · 1 评论 -
Android HAL 分析
<br /><br />1 HAL简介<br /><br />Android 的 HAL(Hardware Abstract Layer硬件抽象层)是Google因应厂商「希望不公开源码」的要求下,所推出的新观念,其架构如下图。虽然 HAL 现在的「抽象程度」还不足,现阶段实作还不是全面符合 HAL的架构规划,不过也确实给了我们很好的思考空间。<br /><br /><br />图1:Android HAL 架构规划<br /><br />这是 Patrick Brady (Google) 在2008 Go转载 2011-01-18 18:19:00 · 903 阅读 · 0 评论 -
nand flash坏块管理OOB,BBT,ECC
<br /><br /> <br />0.NAND的操作管理方式<br /> NAND FLASH的管理方式:以三星FLAHS为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes,除OOB第六字节外,通常至少把OOB的前3个字节存放Nand Flash硬件ECC码)。<br />转载 2011-01-16 13:29:00 · 979 阅读 · 0 评论 -
Android开发之旅:HelloWorld项目的目录结构
引言前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Android项目的目录结构。本文的主要主题如下:1、HelloWorld项目的目录结构1.1、src文件夹1.2、gen文件夹1.3、Android 2.1文件夹1.4、assets 1.5、res文件夹1.6、AndroidManifest.xml1.7、default.properties1、HelloWorld项转载 2010-12-03 14:37:00 · 471 阅读 · 0 评论 -
Android应用协调器------Intent
<br /><br />刚起步的时候经常困扰我们的是一些本来容易解决的问题,往往我们会花掉很大的力气去找解决的办法,最后才知道原来这么简单,这就是英文世界造成的。<br />Intent在Android应用开发中,占有很大的分量,关于Intent在Android中的作用在网络上已经有很多资料了,这里不再累赘,本人喜欢直来直去。在网上看到很多关于Intent的资料,说那么多,你也许还是一头雾水,到底如何使用Intent呢?这里总结一些重用的Intent使用,仅供参考。<br />下面直接给我学习的实例片段。<转载 2010-12-03 13:23:00 · 365 阅读 · 0 评论 -
android binder 讲解(三)
<br /><br />o IBinder接口<br />IBinder接口是对跨进程的对象的抽象。普通对象在当前进程可以访问,如果希望对象能被其它进程访问,那就必须实现IBinder接口。IBinder接口可以指向本地对象,也可以指向远程对象,调用者不需要关心指向的对象是本地的还是远程。<br />transact是IBinder接口中一个比较重要的函数,它的函数原型如下:virtual status_t transact(uint32_t code,const Parcel& data, Parcel*转载 2011-01-25 15:05:00 · 1320 阅读 · 0 评论 -
Android中的WatchDog
<br /><br />转载时请注明出处和作者联系方式<br />文章出处:http://www.limodev.cn/blog<br />作者联系方式:李先静 <xianjimli@gmail.com><br /> <br /> <br /> <br />现在的CPU基本上都带有WatchDog功能,这种硬件的WatchDog可以在系统死掉(死锁或者程序跑飞)后重启系统,让系统回到可以工作的状态。WatchDog不能防止系统死掉,但是它能够起死回生,从而提高系统的可用性。<br />硬件级的WatchDo转载 2011-01-25 15:55:00 · 838 阅读 · 0 评论 -
详细解析SMS、EMS、MMS
<br /><br /> 每个使用手机的人都会发短信,但对于SMS、EMS、MMS短信的区别可能还有很多人不了解,在这里凌凯科技就为大家简单介绍。<br /><br /> SMS是Short Messaging Service(短消息服务)的缩写,是一种使用移动设备可以发送和接收文本信息的技术。一则SMS信息最多可达160个字节(约八十个汉字,因还要发送其他相关信息,因此一般的SMS短信对中文的限制是七十个汉字),与大约1秒钟的语音呼叫所占用的空间相当,故而其通讯费用十分低廉。消息的原创 2011-02-10 11:58:00 · 1671 阅读 · 0 评论 -
How to run a Runnable thread in Android?
<br />The simple fix to your example is:<br /> finalRunnable r =newRunnable()<br />{<br /> publicvoid run()<br /> {<br /> tv.append("Hello World");<br /> handler.postDelayed(this,1000);<br /> }<br />};<br /><br />handler.postDelayed(转载 2011-02-10 15:16:00 · 1025 阅读 · 0 评论 -
Android中Handler、Thread(HanlderThread)、Runnable之间的关系
<br /><br /> 在多线程编程这块,我们经常要使用Handler,Thread和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢?<br /> 首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。<br /> 而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。<br /> HandlerThread顾名思义就是可以处理消息循环的线程原创 2011-02-10 15:05:00 · 874 阅读 · 0 评论 -
Android线程模型解析(包括UI的更新)
<br />1引言<br /> <br />Android一词本义指机器人,Google于2007年11月发布了以Android命名的开源移动设备综合平台,包括其基于Linux的操作系统、中间件和关键的手机应用。并且组建了开放手机联盟,其成员囊括了全球著名的各大手机生产商和移动运营商。2008年8月,Google又发布了网上应用商店Android Market。任何一个开发者只需要借助Android发布的SDK开发手机应用,即可把开发的应用在Android Market上销售。目前Android Marke转载 2011-02-10 14:55:00 · 1185 阅读 · 2 评论 -
Android 之 Java 多线程
<br /><br /> 多线程的好处无需多言。<br />这篇日记冠之以Android之名,实际上是Java提供语言级的对多线程程序的设计支持。<br />一:实现多线程的两种方式:<br /> 1:从Thread类继承,并重写run方法。<br /> 2:实现Runnable接口,并实现其中的run方法。<br />二:Java语言对多线的一些需要注意的事项。<br /> 1:Java运行时系统实现了一个用于调度线程执行的线程调度器,用于确定某一时刻由哪一个线程在CPU上运行。<br />转载 2011-02-10 14:48:00 · 924 阅读 · 0 评论 -
两个与Android IPC有关的问题
<br /><br /> <br /> <br />1.文件描述符是如何在进程之间传递的?<br />我们知道文件描述符,就像虚拟内存的地址一样,是进程私有的资源。在一个进程中文件描述符,在另外一个进程中,可能是无效的,也可能是对应另外一个文件。 Android却可以把文件描述符从一个进程传到另外一个进程。第一次发现这种情况时,让我感到很惊奇,所以花了点时间去研究。看明白之后,发现其实现也很简单:status_t Parcel::writeFileDescriptor(int fd){ flat_转载 2011-01-25 17:59:00 · 863 阅读 · 0 评论 -
android binder 讲解(四)
<br /><br />Binder通信简介:<br /> Linux系统中进程间通信的方式有:socket, named pipe,message queque, signal,share memory。Java系统中的进程间通信方式有socket, named pipe等,android应用程序理所当然可以应用JAVA的IPC机制实现进程间的通信,但我查看android的源码,在同一终端上的应用软件的通信几乎看不到这些IPC通信方式,取而代之的是Binder通信。Google为什么要采用这种方式呢转载 2011-01-25 16:32:00 · 974 阅读 · 0 评论 -
java中的多态性 是怎么体现的呢?
<br /><br />一、基本概念 <br /><br /> 多态性:发送消息给某个对象,让该对象自行决定响应何种行为。 <br /> 通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。 <br /><br /> java 的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。 <br />转载 2011-01-25 18:00:00 · 1844 阅读 · 0 评论 -
jni / C for android 技术总揽
<br />Android编译环境(1) - 编译Native C的helloworld模块<br /><br /><br />Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比较简单的,不过它并不是我们熟悉的Makefile,而是经过了Android自身编译系统的很多处理,因此要真正理清楚其中的联系还比较复杂,不过这种方式的好处在于,编写一个新的Androi转载 2010-12-02 14:11:00 · 464 阅读 · 0 评论 -
android编写Service入门用法与教程
<br /><br />android SDK提供了Service,用于类似*nix守护进程或者windows的服务。<br />Service有两种类型:<br />1. 本地服务(Local Service):用于应用程序内部<br />2. 远程服务(Remote Sercie):用于android系统内部的应用程序之间<br />前者用于实现应用程序自己的一些耗时任务,比如查询升级信息,并不占用应用程序比如Activity所属线程,而是单开线程后台执行,这样用户体验比较好。<br />后者可被其他应转载 2010-12-03 14:16:00 · 461 阅读 · 0 评论 -
Android 的属性系统
<br />每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。<br />在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system/init。“init”守护进程将启动一个属性服务。属性服务在“init”守护进程中运行。每一个客户端想要设置属性时,必须连接属性服务,再向其发送信息。属性服务将会转载 2010-11-29 13:29:00 · 599 阅读 · 0 评论 -
Android的键盘事件处理
<br /><br /> <br />1. 基本流程<br />1) 内核处理按键,通过设备文件的方式提供给framework层<br />2) framework层的KeyInputQueue.java启动线程从设备文件中读出键码,然后把读出的键码按kl文件转成相应键值(JNI调用EventHub.cpp),最后写入事件队列<br />3) framework层的WindowManagerService.java启动线程从事件队列中读出键值,然后根据转载 2010-11-30 13:43:00 · 1432 阅读 · 0 评论 -
android典型应用之gps
<br /><br />1. gps说明<br />a) 原理<br />每一卫星播发一个伪随机测距码信号,该信号大约每1毫秒播发一次。接收仪同时复制出一个同样结构的信号并与接收到的卫星信号进行比较,由信号的延迟时间(dT)推算出卫星至 接收仪的距离<br />b) 述语<br />TTFF:首次定位时间<br />PRN:伪随机码,用于辨别是哪颗卫星<br />SNR:信噪比<br />2. android对gps的内部支持<br />a)转载 2010-11-30 13:41:00 · 1082 阅读 · 0 评论 -
Android的开机流程
<br /><br />1. 系统引导bootloader<br />1) 源码:bootable/bootloader/*<br />2) 说明:加电后,CPU将先执行bootloader程序,此处有三种选择<br />a) 开机按Camera+Power启动到fastboot,即命令或SD卡烧写模式,不加载内核及文件系统,此处可以进行工厂模式的烧写<br />b) 开机按Home+Power启动到recovery模式,加载recovery.i转载 2010-11-30 11:52:00 · 1539 阅读 · 0 评论 -
android的intent使用方法
基于组件的架构体系,除了有定义良好的组件,如何把这些组件组装在一起,也是一门艺术。在Android中,Intent (貌似通常译作:意图 ...),就是连接各组件的桥梁。前段时间看同事们做Symbian平台的网易掌上邮 (真 的是做的用心,NB的一米,热情欢迎所有163邮箱的S60v3用户,猛点击之...),有个功能是为邮件添加附件,比如你想要通过邮件发送一副图片泡 mm,可能需要有个很直观的方式从本地选一副珍藏美图,抑或是拿相机来个完美自拍。在Symbian中,这样的功能,都需要你用底层的API,自己一点原创 2010-11-30 10:52:00 · 6097 阅读 · 2 评论 -
Android 的系统属性(SystemProperties)设置分析
<br />Android 的系统属性包括两部分:文件保存的持久属性和每次开机导入的cache属性。前者主要保存在下面几个文件中:<br /><br />bionic/libc/include/sys/_system_properties.h<br />1 #define PROP_SERVICE_NAME "property_service"<br />2 #define PROP_PATH_RAMDISK_DEFAULT "/default.prop"<br />3 #de原创 2010-11-29 11:23:00 · 441 阅读 · 0 评论 -
Android101111: Android Make脚本的简记(4) Email: zcatt@163.com Blog http://zcatt.cublog.cn 内容提要 文档简要整理Android的make脚本的内容。以供
<br />Android Make脚本的简记 <br />内容提要<br />文档简要整理Android的make脚本的内容。以供备忘和参考。<br /><br /><br /><br />声明<br />仅限学习交流,禁止商业用途。转载需注明出处。<br /><br /><br />版本记录<br />Date Ver Note<br />2010-11-11 0.1 Draft. zcatt@Beijing<br /> <br /> <br />1. config.mk的原创 2010-11-27 17:46:00 · 4391 阅读 · 0 评论 -
android makefile(adroid.mk)分析
<br /><br />android是什么就不用说了,android自从开源以来,就受到很多人的追捧。当然,一部人追捧它是因为它<br />是Google开发的。对一个程序员来说,一个系统值不值得追捧得要拿代码来说话。我这里并不打算分析<br />android的代码,而是android的makefile,我想通过分析andorid的makefile来告诉大家如何写<br />makefile。<br />对于一个程序新手而言,好的IDE是他们追捧的对象。但当他接触的代码多了之后,就会逐渐发现IDE不够<原创 2010-11-27 14:34:00 · 1986 阅读 · 0 评论 -
Android线程模型(Painless Threading)
<br /><br />当第一次启动一个Android程序时,Android会自动创建一个称为“main”主线程的线程。这个主线程(也称为UI线程)很重要,因为它 负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与Andriod控件交互的线程。比如,当你在屏幕上按下一个按钮后,UI线程会把这 个事件分发给刚按得那个按钮,紧接着按钮设置它自身为被按下状态并向事件队列发送一个无效(invalidate)请求。UI线程会把这个请求移出事件队 列并通知按钮在屏幕上重新绘制自身。<br /> <br原创 2010-11-29 13:58:00 · 363 阅读 · 0 评论 -
AndroidLogic 解讀程式流程
<br />解讀程式流程<br />接著要觀察主要程式邏輯的內容囉。打開 「src/com/demo/android/bmi」 目錄下的 「Bmi.java」檔案,Eclipse+Android 開發工具已經幫我們預先建立好了基本的程式邏輯。其預設的內容如下:1 package com.demo.android.bmi;<br />2<br />3 import android.app.Activity;<br />4 import android.os.Bundle;<br />5<br />6原创 2010-11-29 16:35:00 · 549 阅读 · 0 评论 -
Android 系统启动分析(转)
init进程是Android启动后系统执行的第一个名称为init的可执行程序。这个程序以一个守护进程的方式运行,它提供了以下功能:设备管理解析启动脚本执行启动脚本中的基本功能执行启动脚本中的各种功能1、init可执行程序init 可执行文件是系统运行的第一个用户空间程序,它以守护进程的方式运行。因此这个程序的init.c文件包含main函数的入口,基本分析如下:int main(int argc,char**argv){ (省略若干。。。) umask(0); /*对umask进行清零转载 2010-12-02 13:18:00 · 476 阅读 · 0 评论 -
分析Android 根文件系统启动过程(init守护进程分析)
今天开始分析Android 根文件系统启动过程。在Android系统启动时,内核引导参数上一般都会设置“init=/init”,这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。这个程序所了什么呢? 我们只有RFSC(Readthe Fucking Source code)!!init程序源码在Android官方源码的system/core/init中,main在init.c里。我们的分析就从main开始。init:(1)安装SIGCHLD信号。(如果父进程不等待子进程转载 2010-12-02 10:47:00 · 306 阅读 · 0 评论 -
android典型用户之多媒体播放
<br /><br />1. android多媒体介绍<br />android的多媒体功能基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H.264、MP3、 AAC、 AMR、JPG、 PNG,底级实现在源码的external/opencore中<br />2. android框架对多媒体的支持<br />应用程序调用接口<br />frameworks/base/media/java/android/med转载 2010-11-30 13:43:00 · 390 阅读 · 0 评论 -
android系统自带的Service原理与使用
<br /><br />1. 说明<br />android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监听是否有SD卡安装及移除,ClipboardService提供剪切板功能,PackageManagerService提供软件包的安装移除及查看等等,应用程序可以通过系统提供的Manager接口来访问这些Service提供的数据,以下将说明他们的工具流程<br />2. 举例说明基本流程<br />以and转载 2010-11-30 11:46:00 · 594 阅读 · 0 评论 -
android的包管理
<br /><br />1. 说明<br />包管理(Package manager)非常重要,它关系着软件包的安装,卸载,查看和使用,它是运行在后台的一个服务,名叫PackageManagerService,包括对软件包的解包,验证,安装等<br />2. 系统软件包管理信息存储在哪<br />/data/system/packages.xml<br />通过它可以看到系统安装的所有软件包,以及软件包的信息<br />3. 包管理相关源码在哪<br />frameworks/bas转载 2010-11-30 11:43:00 · 826 阅读 · 0 评论 -
android中使用JNI
<br /><br />1. 为什么使用JNI<br />JNI(Java Native Interface)Java程序中调用C/C++开发的共享库,主要用于提高程序效率,或者Android应用对C/C++库的调用(多用于调用移植的库,如语音合成库pico,图像识别库opencv等)<br />2. android源码中自带的实例<br />development/samples/SimpleJNI/*<br />3. 实例<br />1) 编译环境<br />Ub转载 2010-11-30 11:38:00 · 521 阅读 · 0 评论 -
android 开机动画
<br /><br />1. 介绍<br />android开机画面由三部分组成,第一部分在bootloader启动时显示,第二部分在启动kernel时显示,第三部分在系统启动时(bootanimation)显示(动画)<br />2. bootloader开机图片<br />1) 一般使用rle格式图片,不同的android系统不同此图片可能放在不同位置,以下实例均以G1为例,G1放在splash分区中<br />2) 制作rle格式开机图片<br />a)原创 2010-11-30 11:34:00 · 773 阅读 · 0 评论 -
AndroidManifest.xml
<br /><br />AndroidManifest.xml是每个android程序中必须的文件。它位于application的根目录,描述了<br />package中的全局数据,包括了package中暴露的组件(activities, services, 等等),他们各自<br />的实现类,各种能被处理的数据和启动位置。<br />此文件一个重要的地方就是它所包含的intent-filters。这些filters描述了activity启动的位<br />置和时间。每当一个activity(或者操作系原创 2010-11-30 11:16:00 · 998 阅读 · 0 评论 -
Android 的属性系统(翻译)
<br />由于对Android 的属性系统不是很了解,所以翻译了这篇文章《Android Property System》 。<br /><br />每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。<br /><br />在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system /init转载 2011-03-04 11:41:00 · 545 阅读 · 0 评论