
android框架
文章平均质量分 81
new_abc
这个作者很懒,什么都没留下…
展开
-
root后台service
Android里面权限控制的比较严,一般的应用当需要使用系统或者root权限是,比较麻烦,所以编写一个root service用来处理root权限请求,通过socket通信/* 标准头文件放在前面,否则有些函数定义会被覆盖掉 */#include #include #include #include #include #define LOG_TAG "ROOT_SERVER"原创 2013-01-24 19:08:45 · 2446 阅读 · 0 评论 -
编译出来的 镜像放到模拟器里面报错
报出下面这个错:09-09 03:38:49.075: E/System(300): java.lang.RuntimeException: Unable to get provider com.android.providers.settings.SettingsProvider: android.database.sqlite.SQLiteException: Can't downgrade原创 2013-09-09 13:53:25 · 1641 阅读 · 2 评论 -
android效率为什么这么的高呢
Android系统框架和上层应用是类java(不是正统的sun java)开发的,实现了自己的java虚拟机dalvik,既然用java虚拟机和java开发,一般都会认为效率低下。其实不然,在基本主流的智能手 机的软件平台上,android的执行速度是最快的。 那么android效率为什么这么的高呢?特别是一个应用程序的启动时间很短,本文主要从以下个八方面进行分析:转载 2013-09-30 17:29:37 · 1326 阅读 · 0 评论 -
android启动时间
主要看下android的启动过程时间都花在哪:1、首先是kernel到启动android这段时间,我的机子这花了大概7 8 s左右2、启动android:主要是从启动android到launch加载完毕启动android时间:启动launch时间大概花了32 - 15 = 17s这中间主要有预加载类,花了大概4s然后是启动service:原创 2013-09-24 17:10:03 · 3828 阅读 · 2 评论 -
PackageManagerService概述
PackageManagerService主要负责对系统的apk进行管理,不管是系统apk(/system/app),还是我们手工安装上去的,系统所有的apk都是由其管理的。我们看一下PackageManager类图从图可知,PackageManage负责提供对外的接口,PackageManage是一个抽象类,具体的实现是ApplicationPackageManager,Ap原创 2013-10-22 15:52:58 · 8107 阅读 · 0 评论 -
AppDirObserve
AppDirObserver主要负责监控相应目录下面apk的变动我们以监视/system/app的代码为例mSystemInstallObserver = newAppDirObserver(mSystemAppDir.getPath(), OBSERVER_EVENTS, true); mSystemInstallObserver.startWatching();首先看一下这几个原创 2013-10-22 16:12:48 · 2037 阅读 · 4 评论 -
PackageManagerService启动及初始化流程
PackageManagerService也是有ServerThread启动的,运行在system_process进程。我们先来看下PackageManagerService是怎么启动的:PackageManagerService的启动需要四个参数,context上下文环境信息由ActivityManagerService获取,installer是一个安装器,是对install原创 2013-10-23 09:32:38 · 36290 阅读 · 17 评论 -
android Intent启动flag
FLAG_GRANT_READ_URI_PERMISSION如果设置这个标记,Intent的接受者将会被赋予读取Intent中URI数据的权限和lipData中的URIs的权限。当应用与Intent的ClipData时,所有的URIs和data的所有递归遍历或者其他Intent的ClipData数据都会被授权。FLAG_GRANT_WRITE_URI_PERMISSION同FL原创 2013-10-30 14:47:09 · 16325 阅读 · 3 评论 -
taskAffinity 和 FLAG_ACTIVITY_NEW_TASK
taskAffinity 和 FLAG_ACTIVITY_NEW_TASK都是和activity启动时是否需要新建一个task有关,我们分四种情况看一下这两个标志对启动activity的影响:(前提:从MainActivity中启动ActivityA)1)、两个标志都不设置2)、有FLAG_ACTIVITY_NEW_TASK 3)、无FLAG_ACTIVITY_NEW_TASK有ta原创 2013-10-30 18:20:47 · 3099 阅读 · 2 评论 -
kernel升级
前面一段时间一直在搞kernel的升级,开始是把4.1的升级到4.2,后面是根据相应的一些硬件修改更改一些原来的设置,搞的比较纠结,4.1升级到4.2还好,但是根据相应的硬件来同步相应的驱动就比较麻烦了,因为很多的引脚什么的东西要改,这些都没怎么弄过,做的比较纠结。以前一直想做驱动,现在真正有机会了,做驱动了,确实在不太想做,也许是过了这么久,对做这个也没什么兴趣了,哎,后面还是跟老大说了下做原创 2013-06-25 18:04:30 · 5877 阅读 · 14 评论 -
SensorThread线程
这里再来看一下SensorThread线程是怎么监听数据的首先看一下流程图我们来看一下SensorThreadRunnable的run方法 public void run() { //Log.d(TAG, "entering main sensor thread"); final float[] val原创 2013-05-24 21:45:22 · 5057 阅读 · 4 评论 -
registerListener流程
registerListener用来注册要监听的sensor,在Android应用中,我们是这么使用来注册一个需要监听的sensor的registerListener(this, tp,SensorManager.SENSOR_DELAY_FASTEST);第一个是一个实现了SensorEventListener 接口的类,当有数据到来时会调用onSensorChanged 方法,tp是我原创 2013-05-24 21:39:10 · 20095 阅读 · 3 评论 -
有用的
1、大小写字母转换把要转换的文本拷贝到word,快捷键SHIFT+F32、如果加载init.godbox.sh有问题,如何判断init.godbox.sh中哪条语句引起的sleep 2echo "333333333333333"system/bin/show_picture "3333333333333"# for system standbyinsmod /system/原创 2012-11-01 17:23:02 · 950 阅读 · 0 评论 -
HAL学习
一、HAL调用方式或流程(以gralloc为例):hw_module_t const* module;alloc_device_t* grDev; hw_get_module(GRALLOC_HARDWARE_MODULE_ID,&module);获取hw_module_t结构gralloc_open(module, &grDev); //调用相应的open接口,在这个接口里会原创 2013-03-11 10:22:06 · 1726 阅读 · 0 评论 -
Android待机部分实现
由于要在STB中实现待机,需要kill掉一些进程 ,这里采用的是先ps查出有哪些进程,并保存到文件,然后把该kill掉的进程kill掉,还没有做好。部分kill的代码:#include #include #include #include #include #include #include #include #include #include #inclu原创 2013-03-04 11:46:52 · 2060 阅读 · 0 评论 -
sensor__HAl分析(头文件)
首先看下sensor的hal层头文件:hardware\libhardware\include\hardwaretypedef struct { union { float v[3]; struct { float x; float y; float z; };原创 2013-05-24 21:05:40 · 3802 阅读 · 0 评论 -
Sensor应用实例
前面分析了sensor的hal层和sensorservice的启动,service启动之后,我们就可以在应用调用sensor的接口了,下面是一个简单的实例:package com.sensortest;import android.app.Activity;import android.hardware.Sensor;import android.hardware.SensorEven原创 2013-05-24 21:23:02 · 2945 阅读 · 0 评论 -
SystemSensorManager启动
SystemSensorManager是sensor Java层的一个service。我们看一下其启动的流程图:其启动在ContextImpl.java中 registerService(SENSOR_SERVICE, new ServiceFetcher() { public Object createService(ContextImp原创 2013-05-24 21:28:55 · 5423 阅读 · 0 评论 -
Android BitTube进程间数据传递
Android 4.0里面除了个BitTube的东西,字面意思理解就是字节管道,可以用来在进程间进行数据的传递,但是是单向的如果要在两个进程间使用BitTube进行数据的传递,一般都是这么使用的(以SensorEventConnection和SensorEventQueue通信为例)1、首先在SensorEventConnection的构造函数里面 new 一个BitTube,不需要参数,原创 2013-05-24 21:47:59 · 6698 阅读 · 0 评论 -
sensor__HAl分析(实现)
首先是sensor这个模块的id定义,主要是实现了一个sensors_module_t结构:struct sensors_module_t HAL_MODULE_INFO_SYM = { .common = { .tag = HARDWARE_MODULE_TAG, .version_major = 1, .version_minor =原创 2013-05-24 21:10:38 · 13533 阅读 · 3 评论 -
android 启动模式
待续...翻译 2013-10-30 11:46:36 · 1379 阅读 · 0 评论 -
android 启动模式(二)
FLAG_GRANT_READ_URI_PERMISSION如果设置这个标记,Intent的接受者将会被赋予读取Intent中URI数据的权限和lipData中的URIs的权限。当应用与Intent的ClipData时,所有的URIs和data的所有递归遍历或者其他Intent的ClipData数据都会被授权。FLAG_GRANT_WRITE_URI_PERMISSION同FL原创 2013-10-30 11:46:41 · 6342 阅读 · 0 评论 -
android:taskAffinity && android:allowTaskReparenting
android:taskAffinityThe task that the activity has an affinity for. Activities with the same affinity conceptually belong to the same task (to the same "application" from the user's perspective). Th翻译 2013-10-30 17:35:54 · 11213 阅读 · 0 评论 -
android Widget添加过程和android添加widget不更新的问题分析解决
这两天在解一个关于widget的CR,由于之前也没有看过widget,借这个机会学习下widget,不过这个bug后来是另外一个同事fix的,这篇文章分为两部分:第一部分,分析android widget的添加过程,第二部分,分析该问题第一部分: android widget 添加过程分析Android中的AppWidget与google widget和中移动的widget并不是一转载 2014-05-23 11:26:02 · 9164 阅读 · 0 评论 -
.mk编译错误
要在工程代码中加一个宏去原创 2014-06-07 17:44:54 · 1959 阅读 · 0 评论 -
glLookAt() 解析
gluLookAt (define a viewing transformation) 定义了视图观测转换void gluLookAt( GLdoble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, G转载 2014-06-11 12:05:46 · 1522 阅读 · 0 评论 -
javah生成jni文件
首先需要在path中添加Jdk/bin,使得可以在任何mu'l原创 2014-06-11 20:27:48 · 1094 阅读 · 0 评论 -
使用插值器和Keyframes
使用插值器一个插值器就是动画值关于当前时间的函数,定义了当前值是怎么计算的。例如,你可以定义一个线性的动画,代表动画整个过程中都匀速运动,或者你也可以定义一个非线性的动画,例如,在动画开始的时候加速并且在结束的时候减速在动画系统中,插值器从动画中接受一个参数,该参数代表动画已经消耗的时间。插值器修改该参数值来使他与动画的属性值一致。Android系统在android翻译 2014-10-27 09:58:53 · 1765 阅读 · 0 评论 -
System UI 调试方法
工作需要想了解下SystemUi的启动流程,所以需要调试下SystemUI,这样比较高效:1、SyStemUI是随系统启动的,所以我们先要在系统启动的时候把SystemUI的启动关掉,这个在SystemServer里面,可以如下注释: static final void startSystemUi(Context context) { Intent intent =原创 2014-12-04 10:29:15 · 4130 阅读 · 0 评论 -
android IPC通信中的UID和PID识别
IPCThreadState对象维护了2个变量 pid_t mCallingPid; uid_t mCallingUid; 从变量名称来看,这2个变量保存了进程的PID和UID,并且由于这两个变量由IPCThreadState对象维护,可见它们是与IPC相关的。具体它们转载 2015-01-17 11:04:10 · 1187 阅读 · 0 评论 -
Android系统修改导航栏显示位置
Android系统修改导航栏显示位置,默认在下方,改到左边。--- a/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java+++ b/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWin原创 2015-09-15 20:16:03 · 11458 阅读 · 13 评论 -
关闭串口
发版本的时候需要把串口打印关闭:原创 2014-06-04 14:06:09 · 4417 阅读 · 2 评论 -
SensorService启动分析
4.0中sensor是以一个service 的方式启动的在base\cmds\sensorservice\main_sensorservice.cpp#include #include using namespace android;int main(int argc, char** argv) { SensorService::publishAndJoinThrea原创 2013-05-24 21:16:21 · 16699 阅读 · 9 评论 -
Android属性之build.prop生成过程分析
本文简要分析一下build.prop是如何生成的。Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product//system/目录下。在Android运行时刻可以通过property_get()[c/c++域] / SystemProperties_转载 2014-01-13 12:28:19 · 1339 阅读 · 0 评论 -
FLAG_ACTIVITY_CLEAR_TASK
FLAG_ACTIVITY_SINGLE_TOP :如果当前栈顶的activity就是要启动的activity,则不会再启动一个新的activity原创 2013-10-30 21:03:47 · 16050 阅读 · 7 评论 -
android:allowTaskReparenting实例
FLAG_ACTIVITY_CLEAR_TASK :如果存在task和待启动的activity关联(或者说有一个task可以用来启动待启动的activity),则先删除task中的所有activity,然后在该task中启动该activity,即该activity变为根activity原创 2013-10-30 20:59:07 · 10830 阅读 · 9 评论 -
FLAG_ACTIVITY_TASK_ON_HOME
FLAG_ACTIVITY_TASK_ON_HOME :把当前新启动的任务置于Home任务之上,也就是按back键从这个任务返回的时候会回到home,即使这个他们最后看见的activity原创 2013-10-30 21:04:42 · 9264 阅读 · 2 评论 -
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET:重置该task时清除该activity这个标志将会非常有用当你想在你的应用中有个逻辑切换,例如,一个 e-mail的应用可能用于一个命令去显示附件,这个命令启动一个图片浏览的activity去显示附件,这个activity是e-mail应用的一部分,因为它是用户完成这件事情的一部分。但是,当用户离开这个e-mail应用,一原创 2013-10-30 21:00:42 · 16315 阅读 · 1 评论 -
FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED:如果设置该属性,并且这个activity在一个新的task中正在被启动或者被带到一个已经存在的task的顶部,这时这个activity将会被作为这个task的首个页面加载。这将会导致拥有这个应用的affinities的task处于一个合适的状态(移动activity到这个task或者activity从中移出),或者简单的重置这个原创 2013-10-30 21:03:13 · 9388 阅读 · 6 评论 -
FLAG_ACTIVITY_SINGLE_TOP
FLAG_ACTIVITY_SINGLE_TOP :如果当前栈顶的activity就是要启动的activity,则不会再启动一个新的activity原创 2013-10-31 15:16:10 · 13865 阅读 · 2 评论