
android-源码开发
wh_19910525
这个作者很懒,什么都没留下…
展开
-
android 设置默认launcher 附上代码
当系统初始化完毕后会进入homeactivity:具体代码流程:ActivityManagerService.java -->public void systemReady(final Runnable goingCallback) {...mMainStack.resumeTopActivityLocked(null);...}ActivityStack.ja转载 2014-09-09 09:36:24 · 3278 阅读 · 0 评论 -
如何 分析YUV数据
做视频采集与处理,自然少不了要学会分析YUV数据。因为从采集的角度来说,一般的视频采集芯片输出的码流一般都是YUV数据流的形式,而从视频处理(例如H.264、MPEG视频编解码)的角度来说,也是在原始YUV码流进行编码和解析,所以,了解如何分析YUV数据流对于做视频领域的人而言,至关重要。本文就是根据我的学习和了解,简单地介绍如何分析YUV数据流。 YUV,分为三个分量,“Y”表示明亮度原创 2014-12-16 16:03:05 · 2441 阅读 · 0 评论 -
android webView使用方法
一个WebView的简单例子 。在开发过程中应该注意几点: 1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。webview.getSettings().setJav原创 2015-01-09 10:09:59 · 1002 阅读 · 0 评论 -
android的全局定时器AlarmManager详解
AlarmManager对象配合Intent使用,可以定时开启一个Activity,发送一个BroadCast或者开启一个Service。AlarmManager有如下用法:(1)在指定时间后,执行某操作[java] view plaincopyIntent intent=new Intent(this,ShowUtil.class); PendingInte转载 2015-01-30 12:29:20 · 2543 阅读 · 0 评论 -
分析 Android 4.4.4 设备的 存储空间监控
在Android系统是怎样对设备存储空间进行管理和监控的呢?如果你在使用Android手机时有过把memory填满或者即将填满的经历,也许你会注意到在这种情况下手机的Notifications栏会有“Storagespacerunningout”的通知。当点开该通知你会发现Setting–>Storage settings –>Device memory 下会有如下提示:N原创 2015-01-04 10:13:18 · 5074 阅读 · 0 评论 -
Android中Alarm的机制
本次给大家分析的是Android中Alarm的机制所用源码为最新的Android4.4.4。首先简单介绍如何使用Alarm并给出其工作原理,接着分析Alarm和Timer以及Handler在完成定时任务上的差别,最后分析Alarm机制的源码。什么是AlarmAlarm是android提供的用于完成闹钟式定时任务的类,系统通过AlarmManager来管理所有的Alarm,Ala转载 2015-03-16 11:27:12 · 18301 阅读 · 5 评论 -
Android sendevent/getevent 用法
getevent&sendevent 是android系统下的一个工具,可以 模拟 多种按键和 触屏操作,产生的是raw event,raw event经过event hub处理产生最终的gesture事件。=========================一、getevent :getevent 监控当前的事件,鼠标事件,按键事件,拖动滑动等 dd原创 2014-12-30 11:27:12 · 7544 阅读 · 0 评论 -
在 Android 4.4.4 上,分析 input -- android framework 部分
安卓input子系统是通过事件管道通过系统的各个层的。在最低层,物理输入设备产生了描述的状态变化的信号,如按键和触摸接触点。然后进行编码,并以某种方式发送这些信号,例如通过USB HID报告或I2C总线。这些信号被linux Kernel的驱动解码。驱动会把这些信号翻译成标准的事件类型和代码。Linux内核在linux/input.h中定义了一套标准的事件类型和代码。android的原创 2013-09-09 13:21:52 · 12602 阅读 · 2 评论 -
如何分析Android的Log
首先,让我们看一看AndroidLog的格式。下面这段log是以所谓的long格式打印出来的。从前面Logcat的介绍中可以知道,long格式会把时间,标签等作为单独的一行显示。[ 12-09 21:39:35.510 396: 416 I/ActivityManager ]Start procnet.coollet.infzmreader:umengService_v1 for serv原创 2015-03-31 14:23:44 · 5857 阅读 · 1 评论 -
移动数据 流程分析
切入点,setting 中 ”启用移动数据“1: Settings.java (packages\apps\phone\src\com\android\phone) 开始点击启用移动数据的按钮 protected void onCreate(Bundle icicle) { super.onCreate(icicle); add原创 2015-04-13 19:35:50 · 1955 阅读 · 0 评论 -
Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划
美国时间 2013 年 10 月 31 日, Google 正式发布了全新版本的移动操作系统 Android 4.4 KitKat 。据 google官方介绍,Android 4.4 降低了硬件的需求,提高了程序运行效率。距离 4.4 发布已经过去3个月了,不少朋友也已经体验到了 4.4 所带来的快感,大家可以通过刷入三方ROM(比如CM/Omni/Slim等)体验Android 4.4。转载 2014-12-16 13:57:57 · 1114 阅读 · 0 评论 -
Android 默认壁纸 简单分析
Android的背景墙纸功能的实现主要由散布在下面几个文件中的类来完成:(1)frameworks/base/core/java/android/app/WallpaperManager.java提供了API类,类WallpaperManager的各种函数接口为应用开发者所使用。(2)frameworks/base/services/java/com/android/server/Wa原创 2014-11-24 16:48:10 · 8633 阅读 · 0 评论 -
通过adb 发送广播
通过命令行执行adb shell am broadcast发送广播通知。adb shell am broadcast 后面的参数有:[-a ][-d ][-t ] [-c [-c ] ...] [-e|--es ...] [--ez ...] [-e|--ei ...] [-n ][-f ] []例如原创 2014-09-25 11:54:58 · 41261 阅读 · 0 评论 -
Android平台Overlay机制
Android overlay 机制允许在不修改packages中apk的情况下,来自定义 framework和package中的资源文件,实现资源的定制。来达到显示不同的UI得目的(如MIUI)。以下几类能够通过该机制定义:(1),Configurations (string, bool, bool-array)(2),Localization (string, string-arr原创 2014-09-13 20:27:55 · 41945 阅读 · 5 评论 -
开发者选项 Disable HW overlays -> 分析
1.Disable HW overlays1../packages/apps/Settings/src/com/android/settings/DevelopmentSettings.javasetting得到SurfaceFlinger服务,通过binder发命令。private void writeDisableOverlaysOption() {原创 2014-09-03 11:27:15 · 7160 阅读 · 0 评论 -
android 设置应用程序 默认值
Android中有时打开一个文件,系统会弹出一个应用程序选择列表供你选择.如果你把某个应用程序设为默认值,则不会弹出选择框,而会直接调用该程序.设置方法如下: PackageManager pm = getPackageManager(); IntentFilterfilter = new IntentFilter(); filter.addCategory(原创 2014-09-03 11:38:43 · 11111 阅读 · 0 评论 -
android 打开各种文件(setDataAndType)
Java代码 /** * 打开文件 * @param file */ private void openFile(File file){ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //设置intent的Action属性原创 2014-11-04 11:52:38 · 18823 阅读 · 0 评论 -
Android.mk for your own module
这里我们向Android中添加自己的模块,只涉及到.so/*.a/elf source的编译,以及如何将prebuiltfile添加进工程。对于APK以及jar的source暂时没有仔细研究,要添加进去的话可以参照/pacakge和/framework里面的Android.mk ~~ 首先是可能用得到的基础知识,必须了解基础Makefile的语法,然后下面是Andriod用来编译相应模原创 2014-09-29 13:06:40 · 1166 阅读 · 0 评论 -
Android framework系统默认设置修改
Launcher 总结: 1、launcher的布局太居中,要想两边拉伸 apps_customize_pageLayoutPaddingLeft">40dp apps_customize_pageLayoutPaddingRight">40dpapps tab栏的宽度( Launcher2 icon 数目、大小) \packages\apps\La转载 2014-10-29 10:23:11 · 8958 阅读 · 0 评论 -
[Power]待机电流问题,如何查找wakelock
http://blog.youkuaiyun.com/firefoxwyw/article/details/39030519原创 2014-10-15 17:45:05 · 4748 阅读 · 0 评论 -
android的 root权限
本文将从几个方面,由浅至深地讲述ROOT到底是什么东西?一. ROOT权限简单介绍二.为什么需要ROOT三. ADBD的ROOT权限四.深入源代码ROOT权限简介:ROOT权限是Linux内核中的最高权限,如果你的身份是ROOT,那么你就具有了ROOT权限。有了最高权限,你就可以为所欲为,换句话说,如果恶意程序获取到了ROOT权限,那么就可以肆意地破坏你的手机,获取的隐私.转载 2014-10-15 17:45:18 · 6842 阅读 · 1 评论 -
Sqlite数据库操作的sql操作语句
用sqlite3建立数据库的方法很简单,只要在shell下键入(以下$符号为shell提示号,请勿键入):$ sqlite3 foo.db如果目录下没有foo.db,sqlite3就会建立这个数据库。sqlite3并没有强制数据库档名要怎么取,因此如果你喜欢,也可以取个例如foo.icannameitwhateverilike的档名。在sqlite3提示列下操作进入了sqlit原创 2014-11-06 09:34:45 · 6658 阅读 · 0 评论 -
Android的安全机制 1 -- 老罗
Android是一个基于Linux内核的移动操作系统。Linux是一个支持多用户的系统,系统中的文件的访问权限是通过用户ID(UID)和用户组ID(GID)来控制的。换句话说,就是Linux的安全机制是基于UID和GID来实现的。Android在Linux内核提供的基于UID和GID的安全机制的基础上,又实现了一套称为Permission的安全机制,如图1所示:图1 Linux的UID转载 2015-04-21 17:25:51 · 4356 阅读 · 1 评论 -
Android的BUG(三) - 广为人知的诟病:频繁重启问题
使用过Android的同学,尤其是用过山寨pad,应该对Android的重启问题印象深刻吧。Android由于其设计的复杂性,可能会使得系统在不经意时陷入异常状态,因此Android设计了一套看门狗机制,当检测到问题后,自动重启。再说说我碰到的问题吧,刚带起Android的时候,android的重启问题异常严重,经常操作一会后,界面卡住,等待1分钟左右,重启…, trace大约如下:W/W转载 2015-07-08 15:52:11 · 4247 阅读 · 0 评论 -
Android深入浅出之Binder机制
Android深入浅出之Binder机制一说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。我们这里将以MediaService的例子来分析Binder的使用:l Service转载 2016-12-16 19:40:11 · 518 阅读 · 0 评论 -
BootAnimation使用surfaceflinger分析
首先,从BootAnimation开始分析,BootAnimation在启动脚本init。Rc被配置成一个服务[html] view plain copy 1.service bootanim /system/bin/bootanimation 2. class main 3. user graphics 4. group sys转载 2017-03-06 18:40:37 · 1359 阅读 · 1 评论 -
Android USB Host使用详解
http://blog.youkuaiyun.com/glouds/article/details/40260805=================首先说一下为什么要写关于Android USB Host通信的介绍,对于android程序原来说不懂硬件做USB通信确实开头比较难,但是Google API介绍还是很详细的,而且网上也有很多例子,不过网上的基本把介绍和例子分开,光转载 2017-06-19 17:26:22 · 6575 阅读 · 0 评论 -
qcom 系列的i2c设备的power 在dtsi里定义的时候需要注意的
最近在driver里发现一个有点值得注意的地方:在dtsi里定义了powervdd-supply = ;vcc_i2c-supply = ;但是在i2c device的driver里看到的却是pdata->vcc = devm_regulator_get(dev, "vcc_i2c");也就是说这边的vcc_i2c和dtis里的vcc_i2c-sup转载 2017-06-08 17:10:21 · 2454 阅读 · 0 评论 -
fastboot及lk解析
FastBoot协议版本0.4fastboot协议是一种通过USB连接与bootloaders通讯的机制。它被设计的非常容易实现,能够用于多种设备和运行Linux、Windows或者OSX的主机。 基本需求(Basic Requirements)两个端点,一个输入端,一个输出端。对于全速(full-speed)USB,最大包尺寸必须是64个字节; 对于高速(hign-s转载 2017-07-01 11:29:47 · 2888 阅读 · 0 评论 -
android 调试常用命令 汇总
在Android应用开发过程中,熟悉常用的adb调试命令往往能事半功倍,再此做一个汇总记录。adb shell vm 命令adb shelll vm 命令在4.3以后的版本才可用,使用它可以方便的查看或者设置屏幕的分辨率、密度。adb shell vm size 查看分辨率,我本机的输出结果如下: Physical size: 720x1280 如果想要设置成其转载 2017-07-06 18:45:56 · 1681 阅读 · 0 评论 -
Android 7.0中的多窗口实现解析
在以往的Android系统上,所有Activity都是全屏的,如果不设置透明效果,一次只能看到一个Activity界面。但是从android N(7.0)版本开始,系统支持了多窗口功能。在有了多窗口支持之后,用户可以同时打开和看到多个应用的界面。并且系统还支持在多个应用之间进行拖拽。在大屏幕设备上,这一功能非常实用。本文将详细讲解Android系统中多窗口功能的实现。多窗口转载 2017-07-06 18:46:45 · 1302 阅读 · 0 评论 -
MTK GPIO操作
上拉或下拉 选择设置:mt_set_gpio_pull_select(COL_REG[i], 0);mt_set_gpio_pull_select(COL_REG[i], 1);拉高(设置1), 拉低(设置0) 操作: %MCEPASTEBIN%s设置输入 输出: mt_set_gpio转载 2017-07-18 18:51:55 · 2488 阅读 · 0 评论 -
关于mtk GPIO口的定制
如果需要定制GPIO口呢,需要使用mediatek/dct/DrvGen.exe工具,点击Open,选择mediatek/custom/project_dir/kernel/dct/dct/codegen.dws文件,点击Edit,将出现如图所示的一个窗口:EintMode: 指示是否当作中断引脚来使用,例如GPIO0就可以当作ENTI0,如果选中了该模式,其它模式是不可见的。Def.Mo转载 2017-07-18 18:52:53 · 1478 阅读 · 0 评论 -
Android 在 SElinux下 如何获得对一个内核节点的访问权限
Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限。第一步:找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进程来访问原创 2015-04-21 15:12:08 · 19561 阅读 · 8 评论 -
Android 4.2 中的Bluetooth 协议栈
Android 4.2之前,Google一直使用的是Linux官方蓝牙协议栈,即知名老牌开源项目BlueZ。BlueZ实际上是由高通公司在2001年5月基于GPL协议发布的一个开源项目,该项目仅发布一个月后就被Linux之父Linux Torvalds纳入了Linux内核,并做为Linux 2.4.6内核的官方蓝牙协议栈。随着Android设备的流行,BlueZ也得到了极大的完善和扩展。例如A转载 2016-08-30 18:42:39 · 1653 阅读 · 0 评论 -
Android Wi-Fi Display(Miracast)介绍
Android Wi-Fi Display(Miracast)介绍2012年11月中旬,Google发布了Android 4.2。虽然它和Android 4.1同属Jelly Bean系列,但却添加了很多新的功能。其中,在显示部分,Android 4.2在Project Butter基础上再接再厉,新增了对Wi-Fi Display功能的支持。由此也导致整个显示架构发生了较大的变化转载 2016-08-30 17:00:17 · 5912 阅读 · 0 评论 -
android provision apk 分析
今天说说Provision这个APK,可能很多朋友都不知道有这个APK存在。Provision的作用很简单,就是一个系统初始化引导程序,原生的Android里面Provision只做了一件事,就是写入一个DEVICE_PROVISIONED标记。不过这个标记作用很大,这个标记只会在系统全新升级(双清)的时候写入一次,代表了Android系统升级准备完成,可以正常工作。 之所以会关注DEVIC转载 2015-07-09 12:32:09 · 11467 阅读 · 1 评论 -
Android 获取指定城市的天气实况
摘要:主要是利用Http发送请求获得指定城市编号的天气实况等信息。如 a.假如发送这个请求:http://www.weather.com.cn/adat/sk/101220101.html。使用CInternetSession类去发送的话则返回的Json如下:{"weatherinfo":{"city":"合肥","cityid":"101220101"原创 2015-08-26 17:15:27 · 1535 阅读 · 0 评论 -
PreferenceFragment 使用 小结
Perference也就是我们常说的偏好设置,首选项设置,可以自动保存一些数据,例如我们在上一次使用的时候的一些内容,则在下一次启动后依然生效,而不需要再进行配置。当用户改变设置时,系统就会更新SharedPreference文件中对应的值。perference使用键值对的方式来处理,在android3.0之前,我们一般去继承Preference这个基类,去给用户呈现一个可以设置的界面,其中的la转载 2013-01-15 21:07:49 · 19200 阅读 · 2 评论 -
android悬浮窗口的实现
当我们在手机上使用360安全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可见(多米音乐也有相关的和主界面交互的悬浮小窗口)。那么这种不受Activity界面影响的悬浮窗口是怎么实现的呢? 竟然它能悬浮在手机桌面,且不受Activity界面的影响,说明该悬浮窗口是不隶属于Activity界面转载 2015-09-08 15:08:02 · 1574 阅读 · 0 评论