
android 架构
muojie
这个作者很懒,什么都没留下…
展开
-
surface相关函数
<br />surfaceCreated(SurfaceHolder holder):当Surface第一次创建后会立即调用该函数。程序可以在该函数中做些和绘制界面相关的初始化工作,一般情况下都是在另外的线程来绘制界面,所以不要在这个函数中绘制Surface。 <br /><br /> surfaceChanged(SurfaceHolder holder, int format, int width,int height):当Surface的状态(大小和格式)发生变化的时候会调用该函数,在su原创 2010-11-29 19:43:00 · 1515 阅读 · 0 评论 -
android 程序退出
<br />很多网友可能发现自己的Android程序有很多Activity,比如说主窗口A,调用了子窗口B,在B中如何关闭整个Android应用程序呢?<br /><br /> 首先要说明在B中直接使用finish(),接下来手机显示的还是主窗口A,所以一起来看看是如何实现的吧.<br /><br /> 1. Dalvik VM的本地方法<br /><br /> android.os.Process.killProcess(android.os.Process.myPid())原创 2010-11-29 19:46:00 · 619 阅读 · 0 评论 -
android 编程总结
<br />单例类的学习(存在封装成动态库的情况)<br /> 在Android下,按返回键,程序会不一定会退出,需要你通过事件去终止线程,对于单例类也是如些,只有你用delete删除这个单例类对象时,才会去调用单例类的析构函数,否则其会一直存在到android不得不清除掉内存为止。原创 2010-11-29 19:50:00 · 574 阅读 · 0 评论 -
深入Android 【五】 —— 任务和进程
<br />转自:http://www.cnblogs.com/duguguiyu/archive/2010/02/22/1671547.html<br /> <br /> <br />关于Android中的组件和应用,之前涉及,大都是静态的概念。而当一个应用运行起来,就难免会需要关心进程、线程这样的概念。在Android中,组件的动态运行,有一个最与众不同的概念,就是Task,翻译成任务,应该还是比较顺理成章的。<br />Task的介入,最主要的作用,是将组件之间的连接,从进程概念的细节中剥离出来,可以转载 2010-12-22 18:41:00 · 549 阅读 · 0 评论 -
Android Display System Surface Flinger
<br />转自:http://www.cnmsdn.com/html/201005/1274854729ID5100.html<br /> <br /> SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统 范围内的surface composer 功能,它能够将各种应用 程序的2D 、3D surface 进行组合。在具体讲SurfaceFlinger 之前,我们先来看一下有关显示方面的一些基础 知识 。转载 2010-12-22 14:04:00 · 581 阅读 · 0 评论 -
Android中的Intent
转自:http://oxen.javaeye.com/blog/143701 在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。 而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传转载 2010-12-22 18:25:00 · 480 阅读 · 0 评论 -
Android 存储卡操作 --StatFs
import java.io.File; import android.os.Environment; import android.os.StatFs;File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(path.getPath()); //或者直接给出路径:StatFs stat = new StatFs("/media/C");long blockSize = sta原创 2011-01-11 20:13:00 · 2532 阅读 · 0 评论 -
Android HAL 介绍
<br />HAL 介绍<br /> Android 的 HAL (硬件抽像层)是 Google 因应厂商「希望不公开源码」的要求下,所推出的新观念,其架构如下图。虽然 HAL 现在的「抽象程度」还不足,现阶段实作还不是全面符合 HAL 的架构规划,不过也确实给了我们很好的思考空间。<br /> 图 1 : Android HAL 架构规划<br /> 这是 Patrick Brady (Google) 在 2008 Google I/O 所发表的演讲「 Anatomy & Physiol原创 2010-11-18 10:22:00 · 1154 阅读 · 0 评论 -
android ANR
<br />以下为一段ANR的LOG,主要是在WindowManagerService.java和ActivityManagerService.java中实现。<br /> <br />W/WindowManager( 2183): Key dispatching timed out sending to com.android.camera/com.android.camera.Camera<br />W/WindowManager( 2183): Previous dispatch stat原创 2011-01-14 14:37:00 · 10888 阅读 · 5 评论 -
camera callback
<br /> <br />android_hardware_Camera.cpp<br /><br />void JNICameraContext::notify(int32_t msgType, int32_t ext1, int32_t ext2){<br /> env->CallStaticVoidMethod(mCameraJClass, fields.post_event, mCameraJObjectWeak, msgType, ext1, ext2, NULL);<br />原创 2011-01-20 20:47:00 · 1368 阅读 · 0 评论 -
Android中LocationManager的简单使用,获取当前位置
Android中LocationManager的提供了一系列方法来地理位置相关的问题,包括查询上一个已知位置;注册/注销来自某个LocationProvider的周期性的位置更新;以及注册/注销接近某个坐标时对一个已定义Intent的触发等。今天我们就来看看Android中LocatinManager的简单使用,以获取当前所在的位置为例。首先,我们需要获取LocationManager的一个实例,这里需要注意的是他的实例只能通过下面这种方式来获取,直接实例化LocationManager是不被允许的转载 2011-02-10 19:53:00 · 907 阅读 · 0 评论 -
HAL层开发基础 && Android HAL module执行过程分析
转自:http://blogold.chinaunix.net/u/22630/showart_2190386.htmlHAL module执行过程分析1.其初始化过程如下:System.loadLibrary("led_runtime")->JNI_OnLoad()->registerMethods()-> ->env->RegisterNatives(clazz,gMethods,sizeof(gMethods)/sizeof(gMethods[0]));onCreate()->led_srv转载 2011-02-14 17:58:00 · 3306 阅读 · 1 评论 -
[转载]android 休眠
转自:http://www.cublog.cn/u1/42456/showart_2387659.html在 Android 的上层是使用 goToSleep() 这个函数让系统进入休眠的。但是这个命令为什么会让 Android 进入 Suspend Mode。 以前在做其他系统的时候, 一般都要自己手工去控制 apm_bios 这个设备的,比如使用 ioctl() 调用转载 2011-06-27 18:08:00 · 1631 阅读 · 1 评论 -
Android中的lcd_density设置
转自:http://www.linuxidc.com/Linux/2011-02/32499.htm在/system/build.prop中设置:对于HVGA屏,设置ro.sf.lcd_density=160对于WVGA屏,设置ro.sf.lcd_densit转载 2011-08-03 14:04:33 · 10681 阅读 · 4 评论 -
Android自适应屏幕大小和layout布局(横屏|竖屏)
转载:http://blog.sina.com.cn/s/blog_7eaf1e100100rqon.html一:不同的layoutAndroid手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢? 其转载 2011-08-03 14:36:33 · 2479 阅读 · 0 评论 -
MediaRecorder 学习
1、MediaRecorder有一个状态机制,请参考帮助文档中的MediaRecorder的状态图操作Mediarecorder。这个问题并不大。2、摄像头是非复用资源,如果一个recorder被使用,并没有释放,软件无法获得recorder,这个时候软件会出错(编译的时候没原创 2011-08-16 17:35:40 · 900 阅读 · 0 评论 -
android framework sensor
1. android 转屏WindowOrientationListener.java mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//使用G-sensor.rotation实现(详见:G原创 2011-09-13 23:53:03 · 2464 阅读 · 2 评论 -
android sensor manager server
以下是IBM网站上对android sensor的调用示例,详见:http://www.ibm.com/developerworks/cn/opensource/os-android-sensor/另有详细讲解:http://www.androidegg.com/port原创 2011-09-13 11:41:19 · 1621 阅读 · 0 评论 -
如何在Android平台上使用PMEM及注册Platform设备
Android中PMEM驱动程序是物理内存的驱动程序,可用于分配物理内存。PMEM在camera和video系统中频繁使用。下面,简单记录一下PMEM的使用方法。另外,由于PMEM设备做为Platform设备存在,所以我们将对Platform设备做以简单描述。一、PMEM的使转载 2011-08-23 14:09:18 · 776 阅读 · 0 评论 -
Android内核介绍
转自:http://zlb1986.iteye.com/blog/759513已经有一些的文章介绍Android内核了,本系列篇将从Linux内核的角度来分析Android的内核,希望给初学者提够有用的信息。本章将简单的介绍Android内核的全貌,起到一个抛砖引玉的作用转载 2011-08-23 16:45:33 · 903 阅读 · 0 评论 -
MemoryHeapBase内存分配
转自:http://daimajishu.iteye.com/blog/1085167几个与内存相关的类的头文件如下所示: IMemory.h :定义内存相关类的接口,表示堆内存的类 IMemoryHeap 和 BnMemoryHeap ,表示一般内存的类IMemory转载 2011-08-23 18:22:58 · 1161 阅读 · 0 评论 -
android pmem 和ashmem 介绍及实例分析
转自:http://www.ophonesdn.com/forum/thread-6260-1-1.html1、Ashmem(匿名共享内存驱动:Anonymous Shared Memory)它基于mmap系统调用,不同进程可以将同一段物理转载 2011-08-26 10:45:14 · 1517 阅读 · 0 评论 -
Android ashmem
转自:http://blog.sina.com.cn/s/blog_606334a20100goei.html更详细的讲解请看:http://blog.youkuaiyun.com/luoshengyang/article/details/6664554ashmem是andr转载 2011-08-30 09:42:02 · 1186 阅读 · 0 评论 -
make时可能会出的问题
当你make一个工程时,可能会把一些文件还原成以前的文件,而这时make并不能检查出来这个时间变动,就会还是按照以前的*.o文件来链接,这样就没有起到改动的作用,所以,你要用make clean或者手动删除临时文件(比如android下面只有Android.mk就不能用make原创 2010-12-01 19:54:00 · 923 阅读 · 0 评论 -
android jni
例1:**********************************************jstring Jni_getChannelESG(JNIEnv* env, jobject thiz){ int result;原创 2010-12-09 13:33:00 · 682 阅读 · 0 评论 -
android jni 学习1
JNI 是Java Native Interface。 Java Native Interface (JNI )标准成为java平台的一部分, 它允许Java代码和其他语言写的代码进行交互。 JNI 是本地编程接口。它使得在 Java 虚原创 2010-12-13 11:45:00 · 802 阅读 · 0 评论 -
下载Android源代码
1安装repo脚本首先安装repo。在当前用户:~目录下新建一个bin目录。在终端中执行: #cd ~ #mkdir bin 然后,向PATH中添加bin路径:转载 2010-12-29 12:32:00 · 1246 阅读 · 0 评论 -
android4.0 camera hal 移植
先从Camera Hal提供给Camera Service 的接口(CameraHardwareInterface.h)开始看起。从注释可以看出,基本的流程是没有变的。/** * CameraHardwareInterface.h defines the interface to the * camera hardware abstraction layer, used for s原创 2011-11-18 14:16:07 · 4808 阅读 · 2 评论 -
android log
打开Native层的LOGV,只需要在你的cpp代码前加上#define LOG_NDEBUG 0由源代码可以得到原因,源码目录/system/core/include/cutils/log.h 可以看到注释/* * Normally we strip LOGV (VERBOSE messages) from release builds. * You can modify t原创 2011-10-31 17:57:59 · 673 阅读 · 0 评论 -
linux内核 启动android
参考 :http://blog.youkuaiyun.com/yili_xie/article/details/5716837http://www.cnmsdn.com/html/201006/1275432608ID5777.html转载 2011-11-20 23:08:03 · 704 阅读 · 0 评论 -
android的线程封装(Thread)
简单写一下android对线程的c++封装~~~其实API已经写得很清楚了~~封装的文件:/frameworks/base/include/utils/threads.h这里不讨论具体实现,具体实现是和系统相关联的~~首先Anroid提供了几个与直接创建线程的函数:inline bool createThread(thread_func_t f, void *a) i转载 2010-11-27 15:29:00 · 1988 阅读 · 0 评论 -
ICS Binder
ICS的binder实现了BinderService模板templateclass BinderService{public: static status_t publish() { sp sm(defaultServiceManager()); return sm->addService(String16(SERVICE::getServic原创 2011-12-20 13:08:43 · 773 阅读 · 0 评论 -
Android的IPC机制Binder的各个部分
第一部分Binder的组成1.1驱动程序部分驱动程序的部分在以下的文件夹中:kernel/include/linux/binder.hkernel/drivers/android/binder.c binder驱动程序是一个miscdevice,主设备号为10,此设备号使用动态获得(MISC_DYNAMIC_MINOR),其设备的节点为:/dev/binder原创 2010-12-17 10:49:00 · 878 阅读 · 0 评论 -
Android 的Camera架构介绍
转自:http://www.freehum.com/2011/04/android-camera-architecture.html 并已按照ICS整理总结第一部分 Camera概述Android的Camera包含取景器(viewfinder)和拍摄照片的功能。目前Android发布版的Camera程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两个部分,它们建立在Android的原创 2010-12-17 11:47:00 · 2884 阅读 · 3 评论 -
Android HAL 是如何被调用的
Android 对硬件的调用, google 推荐使用 HAL 的方式进行调用,对于 Andriod HAL 的写法,可以参考 android 源码里的 hardware 目录下几个模块的模版。在看 HAL 的编写方法的过程中,会发现整个模块貌似没有一个入口。一般说来模块都要有个入口,比如应用程序有 main 函数,可以为加载器进行加载执行, dll 文件有 dllmain ,而对于我们自己写转载 2010-11-16 20:20:00 · 933 阅读 · 0 评论 -
android adb project
ADB是android debug bridge的缩写,负责计算机与Android设备的几乎所有通信和协作,可以认为是连接两者的桥梁。在Android开发和恶意代码分析中,经常用到它的install、uninstall、push、pull、logcat、shell等命令。它的用法可以参考SDK的文档:http://developer.android.com/guide/develo转载 2012-01-07 12:12:34 · 696 阅读 · 0 评论 -
[StageFright] StageFright框架流程解读
转自:http://blog.youkuaiyun.com/menguio/article/details/63239541、 StageFright介绍 Android froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,并没有完全抛弃opencore,主要是做了一个OMX层,仅仅是对 opencore的omx-co转载 2011-11-09 15:17:40 · 763 阅读 · 0 评论 -
android ics adb
adb源码是在system/core/adb目录下。从Android.mk中,可以看出,在这里可以生成主机端的adb工具和target端的adbd服务。在ics最新代码里,可以发现,还可以生成target端的adb工具,这说在目标板上也可以用adb来调试其他的目标板了。主机与android设备之间的adb连接,详细见:http://blog.youkuaiyun.com/ykletters/art原创 2012-01-04 18:56:51 · 602 阅读 · 0 评论 -
[sensor] sensor service & hal
hardware/sensor/hwmsen/sensors_hwmsen.cstatic int open_sensors(const struct hw_module_t* module, const char* name, struct hw_device_t** device){ int status = -EINVAL; LOGD("%s: name:原创 2012-04-06 16:32:59 · 1299 阅读 · 0 评论 -
android编译系统 makefile
android最顶层的目录结构如下:. |-- Makefile (全局的Makefile) |-- bionic (Bionic含义为仿生,这里面是一些基础的库的源代码) |-- bootloader (引导加载器) |-- build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)原创 2011-09-30 18:06:38 · 799 阅读 · 0 评论