Android系统
文章平均质量分 68
shenbin1430
本人只搞技术,不搞歪门邪道!
展开
-
Android图形架构实现分析总结
Android图形架构分析总结总结其实现方案,主要包括了以下几个关键点: 1、直接FrameBuffer的访问方式,并对FrameBuffer采用双缓存技术 没有采用X-Server等方案,直接操作framebuffer,可以减少X-Server带来的通信开销。打开framebuffer, 创建两个缓原创 2009-07-13 16:36:00 · 7427 阅读 · 0 评论 -
Android 技术专题系列之六 --如何安装.apk到模拟
本文基于http://openhandsetmagazine.com/2008/01/tips-how-to-install-apk-files-on-android-emulator/。在安装完SDK后,(假设SDK安装到/home/mydroid/sdk目录下)1. 输出SDK_ROOT环境变量export SDK_ROOT = /home/mydorid/sdk/tool转载 2009-06-23 15:45:00 · 664 阅读 · 0 评论 -
Android 技术专题系列之七 -- 输入法 框架
Android的输入法框架比价复杂。从进程的角度来讲,相关功能主要分布在下面三个位置:客户端应用是一个包含有图形界面的应用,如地址本。图形界面上包含有能够接收输入的编辑框,如TextView。输入法模块提供软键盘,将用户在软键盘上的按键输入根据某种算法(如Zi, T9,国笔等)转换成单词,然后传递给客户端应用。目录development/samples/SoftKeyb转载 2009-06-23 15:45:00 · 1729 阅读 · 0 评论 -
Android中Activity的生命周期
Activity生命周期的描述:如果一个Activity显示在最前端,它的状态时active或者是running 如果一个Activity失去焦点,但是还能在屏幕上看到它,比如说,被一个非全屏的或者是透明的另一个Activity遮盖,它此时的状态是paused。一个处于paused状态的Activity,保持着所有自身的状态和信息,秉持着与window manager的联系,但转载 2009-06-25 15:25:00 · 712 阅读 · 0 评论 -
搭建Android环境
第一步: 首先安装Fedora操作系统和必要的基础环境,包括git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind g++ sun-jav原创 2009-06-29 15:12:00 · 2806 阅读 · 0 评论 -
Android应用程序快速启动的秘诀
Android系统框架和上层应用是类java(不是正统的sunjava)开发的,实现了自己的java虚拟机dalvik,既然用java虚拟机和java开发,一般都会认为效率低下。其实不然,在基本主流的智能手机的软件平台上,android的执行速度是最快的。 那么android效率为什么这么的高呢?特别是一个应用程序的启动时间很短,本文主要从以下个八方面进行分析:转载 2009-06-30 10:58:00 · 1360 阅读 · 0 评论 -
Android的多媒体框架OpenCore(PacketVideo)介绍
第一部分 OpenCore概述 OpenCore的另外一个常用的称呼是PacketVideo,它是Android的多媒体核心。在发展的过程中,PacketVideo是一家公司的名称,而OpenCore是这套多媒体框架的软件层的名称。在Android的开发者中间,二者的含义基本相同。对比Android的其它程序库,OpenCore的代码非常庞大,它是一个基于C++的实现,定义了转载 2009-07-03 14:54:00 · 6052 阅读 · 1 评论 -
Android的Camera架构介绍
第一部分 Camera概述 Android的Camera包含取景器(viewfinder)和拍摄照片的功能。目前Android发布版的Camera程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两个部分,它们建立在Android的进程间通讯Binder的结构上。 以开源的Android为例,Camera的代码主要在以下的目录中:Camera的JAVA转载 2009-07-06 13:29:00 · 2194 阅读 · 1 评论 -
Android多媒体框架初步分析
Android 系统整体架构:我们先看一下多媒体框架在整个Android系统所处的位置 从框架图可以看出Media Framework处于Libraries这一层,这层的Library不是用Java实现,一般是C/C++实现,它们通过Java的JNI方式调用。转载 2009-07-03 14:41:00 · 7196 阅读 · 1 评论 -
Android Recovery模式
以下流程图绘制了系统从启动加载bootloader后的行为流程。 下载 (28 KB)Bootloader2009-5-18 17:48 下载 (52 KB)step22009-5-18 17:48转载 2009-07-06 10:53:00 · 1303 阅读 · 0 评论 -
Android的MediaPlayer架构介绍
第一部分 MediaPlayer概述 Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的。 MediaPlayer在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含了进程间通讯等内容转载 2009-07-06 10:43:00 · 5086 阅读 · 1 评论 -
Android的MediaRecorder架构介绍
第一部分 MediaRecorder概述Android的MediaRecorder包含了Audio和video的记录功能,在Android的界面上,Music和Video两个应用程序都是调用MediaRecorder实现的。MediaRecorder在底层是基于OpenCore(PacketVideo)的库实现的,为了构建一个MediaRecorder程序,上层还包含了进程间通转载 2009-07-06 10:57:00 · 3944 阅读 · 8 评论 -
Binder机制的各个部分
第一部分 Binder的组成1.1 驱动程序部分驱动程序的部分在以下的文件夹中:kernel/include/linux/binder.hkernel/drivers/android/binder.cbinder驱动程序是一个miscdevice,主设备号为10,此设备号使用动态获得(MISC_DYNAMIC_MINOR),其设备的节点为:/dev/bind转载 2009-07-06 13:36:00 · 3330 阅读 · 0 评论 -
Android核心模块及相关技术
Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:第一、操作系统层(OS)第二、各种库(Libraries)和Android 运行环境(RunTime)第三、应用程序框架(Application Framework)转载 2009-07-15 13:40:00 · 1578 阅读 · 0 评论 -
Android中Camera的Wake Lock
给Camera添加Wake Lock。packages/apps/Camera/AndroidManifest.xmlomxcamera.cppvoid NvOmxCamera::release()添加Wake Lock的方法:在p原创 2011-09-07 14:27:57 · 3117 阅读 · 0 评论 -
Android 技术专题系列之四 -- 网络资源及常见命令备
1.如何本地化一个Android应用:http://groups.google.com/group/android-developers/web/localizing-android-apps-draft2.如何安装.apk到模拟器http://openhandsetmagazine.com/2008/01/tips-how-to-install-apk-files-on-andr转载 2009-06-23 15:39:00 · 892 阅读 · 0 评论 -
Android 技术专题系列之三 -- 编译(build) 流程
Android使用的build系统与普通Linux软件使用的build工具有很大不同,因而,可能使熟悉传统Linux开发工具的程序员稍感陌生。普通的软件项目一般使用autotools工具,包括autoconf,automake,libtool等,利用这些工具来自动生成Makefile。而Android创建了一套自己的系统来生成Makefile。下面对Android的build系统作转载 2009-06-23 15:38:00 · 3367 阅读 · 1 评论 -
Android 技术专题系列之二 -- telephony
Android源码中,hardware/ril目录中包含着Android的telephony源码。这个目录下包含着三个子目录,下面是对三个子目录的具体分析。一、目录hardware/ril/include分析: 只有一个头文件ril.h包含在此目录下。ril.h中定义了76个如下类型的转载 2009-06-23 15:37:00 · 1660 阅读 · 0 评论 -
Android多媒体之OpenCore的A/V同步机制
PVPlayer在渲染(render)所有多媒体数据是都需要保持一个暂时的同步,也就是通常所说的A/V同步。为了达到同步,需要如下一些信息:媒体回放的时钟,媒体数据的时间戳,从Sink中获取的时间信息(比如从音频设备设定的特定的采样率来获取的播放速率)。图1原创 2009-07-13 10:33:00 · 7518 阅读 · 19 评论 -
Android的PVPlayer介绍
1 Player的组成 OpenCore的Player的编译文件是pvplayer/Android.mk,将生成动态库文件libopencoreplayer.so。这个库包含了两方面的内容:一方是Player的engine(引擎),一方面是为Android构件的Player,这实际上是一个适配器(adapter)。engine的路径是engine/player;adapter转载 2009-07-13 13:55:00 · 3131 阅读 · 0 评论 -
Dalvik虚拟机简介
什么是Dalvik虚拟机? Google于2007年底正式发布了Android SDK, 作为Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实转载 2009-07-15 16:51:00 · 1669 阅读 · 2 评论 -
Android应用的构成
对于一个Android应用程序来说,是由四种构造块组织而成的,这四种构造块如下: Activity Intent Receiver Service Content Provider 但是,并不是每一个Android应用程序都需要这四种构造块,这不是必须的,某些时候,我们只需要这四种中的几种组合成我们的应用。 当我们明确了我们的应用需要哪些构造块后,我们就需要转载 2009-07-13 14:03:00 · 1254 阅读 · 0 评论 -
Android中的Intent详细讲解
在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。 而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。 在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组转载 2009-07-13 14:08:00 · 4022 阅读 · 1 评论 -
Android 技术专题系列之十 -- Audio manager
Android的Audio Manager (即AudioFlinger)相对比较简单,代码主要集中在目录frameworks/base/libs/audioflinger, frameworks/base/media 和hardware/libhardware_legacy/include/hardware_legacy下面。 AudioManager的主要功能如下1.转载 2009-06-23 15:27:00 · 2957 阅读 · 4 评论 -
Android 技术专题系列之十七 -- volume 服务
Android 的volume服务主要是用来管理usb/sd卡等外部存储设备。平台可以对外部存储设备进行操作和轮询状态,当外部存储设备状态发生变化时,volume服务也会即时报告平台。相关代码主要位于:system/core/voldframeworks/base/services/java/com/android/server/MountListener.java转载 2009-06-23 15:36:00 · 1002 阅读 · 0 评论 -
Android 技术专题系列之一 -- Android 是什么
Android 是什么?Android是一个完整的手机软件平台,包含底层的操作系统(Linux), 中间件以及一些关键应用。 Android还提供了一个SDK 帮助开发者使用Java语言来开发。特性应用框架:提供机制使组件(component)能够被复用和替换Dalvik 虚拟机:为移动设备专门进行优化浏览器:基于Webkit引擎优化的图形库:基于一个定转载 2009-06-23 15:37:00 · 913 阅读 · 0 评论 -
Android 技术专题系列之五 -- 本地化
本文内容主要基于http://groups.google.com/group/android-developers/web/localizing-android-apps-draft展开。Android已经设计好了国际化(I18N)和本地化(L10N)的框架,只要编写程序时符合这个框架要求,实现程序的本地化并不困难。下面以HelloAndroid(http://co转载 2009-06-23 15:44:00 · 758 阅读 · 0 评论 -
Android 技术专题系列之十三 -- 与PC同步
为了更好的了解Android 的Sync架构,建议读者可以参考OMA DS (Syncml)规范。 Android的Sync架构符合这一规范。相关代码主要位于frameworks/base/core/java/android/content。网页http://mylifewithandroid.blogspot.com/2008/02/synchronization-in-androi转载 2009-06-23 15:31:00 · 925 阅读 · 0 评论 -
Android 技术专题系列之八 -- 浏览器及web widget
浏览器相关的代码主要位于以下三个位置:1. external/webkit该目录下存放开源的Webkit c/c++代码。2. frameworks/base/core/java/android/webkitexternal/webkit的java封装。提供了用于开发浏览器应用的java类库。这些类库使用JNI访问external/webkit中相应的功能。3. packa转载 2009-06-23 15:47:00 · 1540 阅读 · 0 评论 -
Android 技术专题系列之九 -- 图形系统
本文试图讲述Android图形系统的底层实现。Android图形系统底层实现非常复杂,文档较少,没有使用比较流行的图形组建如Xwindow, Cairo等。Android中的图形系统采用Client/Server架构。Server(即SurfaceFlinger)主要由c++代码编写而成。Client端代码分为两部分,一部分是由Java提供的供应用使用的api,另一部分则是由c+转载 2009-06-23 15:18:00 · 2433 阅读 · 0 评论 -
Android 技术专题系列之十一 -- DRM
简而言之,DRM系统提供一套机制对用户使用手机上的媒体内容(如ringtong,mp3等)进行限制,如限制拷贝给第三方,限制使用次数或时限等,从而保护内容提供商的权利。建议读者可以阅读OMA DRM的规范,以便更好的了解代码。相关代码主要位于下列目录:frameworks/base/media/java/android/drm/mobile1frameworks/base/转载 2009-06-23 15:28:00 · 1561 阅读 · 0 评论 -
Android 技术专题系列之十二 -- Alarm manager
Alarm manager 主要管理硬件时钟。一些与时间相关的应用,如日历,闹钟等需要使用Alarm Manager的服务。Alarmmanager功能相对比较简单,相关代码位于frameworks/base/core/jni/server/com_android_server_AlarmManagerService.cppframeworks/base/services/java转载 2009-06-23 15:30:00 · 858 阅读 · 0 评论 -
Android中Gallery图片与视频选择冲突的原因
Android中的Gallery应用,出现图片与视频选择冲突的问题,通过分析发现:当用Camera进行照相或录像的时生成的图片和视频都分别按照1、2、3、4....的顺序进行了标号,生成的URI分别为:content://media/external/images原创 2011-09-07 14:22:24 · 3843 阅读 · 0 评论