
android
文章平均质量分 85
Alex.Ke
619741254@qq.com
展开
-
HID 设备的双usb 触摸方案分享
针对越来越多的商显项目,由于有触摸的交互需求,那么触控方案选择也就比较重要。目前市面流行的主要有红外框的,电容屏的。单系统(安卓 or OPS)的又分为串口,usb口。双系统(安卓 + OPS) 则有“串口+USB”,“双USB” 方案。如下:其中图一,是单系统连接,比较简单,打开设备(/dev/ttySx , /dev/hidarwx ,其中<x = 0,1,2,3 … >)...原创 2020-03-03 22:52:12 · 4140 阅读 · 2 评论 -
蓝牙协议栈分析
协议栈源码位置:external/bluetooth/bluedroid蓝牙协议栈架构:描述了协议栈Bluedroid,HAL层蓝牙适配库以及上层应用类Bluedroid 分为两层:- BTE: Bluetooth Embedded System // 实现核心的蓝牙功能- BTA: Bluetooth Application Layer //原创 2015-10-12 16:34:37 · 5324 阅读 · 1 评论 -
Android AudioSystem模块分析
Android 音频系统中存在两个重要的服务AudioPolicyService和AudioFlinger,其服务名称为“media.audio_policy”, “media.audio_flinger”。两个服务各司其职,一个负责音频策略相关,一个负责音频的采集和输出相关。两个服务均在多媒体服务mediaserver中进行注册(main_mediaserver.cpp)。本篇主要分析Aud原创 2015-10-16 13:36:45 · 4966 阅读 · 0 评论 -
Android 系统内存分析
能够列出进程所占用的内存使用情况。顺序为从高到低。每个进程占用内存大小以 VSS, RSS , PSS, USS 的形式列出。为了简化描述,内存占用以页为单位表述,而不是字节。 通常每页为 4096 字节。 VSS ( 等同于 ps 命令列出的 VSZ) 是单个进程全部可访问的地址空间。其大小包括可能还尚未在内存中驻留的部分。比如地址空间已经被 malloc 分配,但是还没有原创 2015-07-30 13:50:05 · 4998 阅读 · 0 评论 -
Android vold 工作流程分析
Vold 也即volume Daemon ,是Android存储类的守护进程,管理SD ,USB 等存储类的热拔插事件。vold 服务总体框架借用博客http://blog.chinaunix.net/uid-22935566-id-3039918.html的一张架构图该图涵盖了vold服务的framework层,native层,vold 服务(system\vold)转载 2015-07-29 19:26:28 · 8810 阅读 · 1 评论 -
Android 分区挂载
Android启动之后,系统的分区工作已经完成,但是分区是在哪来进行的?一个大的系统启动不可能每个分区都要去手动挂载,添加,肯定有一个自动加载的工作,Android 本身也是一个Linux系统,我们先从Linux的分区开始了解。Linux系统分区linux 开机时会自动加载分区,只不过要先配置好分区文件fstab (/etc/fstab),如下: # /etc/fstab原创 2015-07-29 16:26:33 · 26902 阅读 · 2 评论 -
Android 镜像文件生成流程
Android编译基本流程(1)source build/envsetup.sh(2)lunch xxx // lunch 之后 选择xxx index(3)make -j16 envsetup.sh 主要是设置编译时的一些系统环境变量,加载 vendor,device 目录(及子目录)下所有vendorsetup.sh ,接着lunc原创 2015-07-28 20:17:53 · 10664 阅读 · 2 评论 -
Android Binder通信机制学习(一)
众所周知,Binder是Android平台完成duojinz原创 2014-06-15 16:15:55 · 1184 阅读 · 0 评论 -
Android 环境变量访问类
摘自:http://developer.android.com/reference/android/os/Environment.html ConstantsStringMEDIA_BAD_REMOVAL在没有挂载前存储媒体已经被移除。StringMEDIA_CHECKI转载 2015-07-27 16:15:06 · 996 阅读 · 0 评论 -
Recovery 简介
概述Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式(类似于windows PE或DOS)。在这个模式下我们可以刷入新的Android系统,或者对已有的系统进行备份或升级,也可以在此恢复出厂设置。使用方法进入方法首先说下进入recovery的方法:1、将手机完全关机后,按住音量键下+电源键,进入bootloader界面;2、按转载 2015-07-27 11:45:03 · 1443 阅读 · 0 评论 -
Android 恢复出厂设置(recovery)
Android 恢复出厂设置基本流程(1)遥控器/按键板后门键触发,或者应用里面从系统设置里面恢复出厂选项也可触发; // 后面以系统设置的应用触发为例(2)选择恢复出厂设置之后,就会发送广播“android.intent.action.MASTER_CLEAR” ;// framework/base/core/res/AndroidManifest.xml(3)MasterCle原创 2015-07-25 11:35:17 · 15608 阅读 · 1 评论 -
Recovery command 升级命令脚本
文件位置/cache/recovery/command实例:--update_package=CACHE:recovery/sec_csc.zip--carry_out=csc_home--wipe_data--wipe_cache命令讲解--wipe_data格式化userdata分区--wipe_c转载 2015-07-27 11:17:46 · 8186 阅读 · 0 评论 -
Android 启动简述
http://www.docin.com/p-191202348.html.....原创 2015-07-02 19:29:09 · 666 阅读 · 0 评论 -
Android 系统资源(字体,声音,视频)的简介
简述提到android系统资源可能联想到的有很多,这里主要是指字体,键盘,声音图像等。资源位置frameworks\base\data 目录下:etcs , fonts,keyboards,sounds,videos,其中sounds,fonts是最重要的部分,修改较多。sounds说明frameworks\base\data\sounds目录下,有alarms原创 2015-07-01 19:11:49 · 961 阅读 · 0 评论 -
Framework-res.apk内容简介
摘自:http://www.romzhijia.net/shuaji/1584/1、assets 目录下结构 |———— images |———— **.png |———— sounds |———— **.raw |———— webkit |———— **.png ▲ 该目录下的内容一目了然,一般用不到修改,这里就不多说了2、res 目录下结构及转载 2015-07-01 17:02:28 · 8101 阅读 · 0 评论 -
Android 4.1.2系统添加重启功能
转自:http://blog.chinaunix.net/uid-20729605-id-3779071.html对于Android的的手机或者平板长期使用,感觉会出现慢的情况,所以偶尔还是需要重启一下,而长按电源键弹出的菜单又没有重启选项,所以特在此记录自己添加这个功能的过程。首先关机的那个弹出菜单是在frameworks/base/policy/src/com/android/转载 2015-07-01 13:33:33 · 754 阅读 · 0 评论 -
Android input 输入系统学习
Android Input 输入系统学习Android输入设备的映射使用指令dumpsys input 可以看到以下信息130|shell@cv6a638_base:/ # dumpsys input INPUT MANAGER (dumpsys input)Event Hub State:原创 2015-09-19 11:35:48 · 4970 阅读 · 0 评论 -
蓝牙开启流程(enable)分析
转自:http://blog.youkuaiyun.com/xubin341719/article/details/40402637一、enableNative函数的的实现(1)、初始化BTE;(2)、创建BTIU_TASK;(3)、初始化HCI、串口相关,启动HCI工作主线程:bt_hc_callback,芯片上电、RF参数初始化;1、应用部分对enableNativ转载 2015-10-12 15:58:22 · 5614 阅读 · 0 评论 -
BlueDroid 蓝牙启动流程分析
转自:http://blog.youkuaiyun.com/xubin341719/article/details/40393285一、 蓝牙开启流程概述,如下图所示:init、enable和一般的函数调用相同,android上层通过APP-->Native-->JNI-->bluetoothinterface-->bluetooth HCIinterface。HC转载 2015-10-12 15:55:20 · 4329 阅读 · 0 评论 -
Mstar 648 平台遥控器/按键包POWER键配置
mstar 平台经常配置客户遥控器,客户提供遥控器后,一般我们需要拿到遥控器的头码,按键的物理码值表(头码配置后也可以getevent获取得到)。系统在运行过程中,一般有两个模块中需要对遥控器进行解码,系统运行过程中(kernel),系统待机过程中(PM)。所有我们需要在这个两个地方配置。PM配置遥控器由于PM 是机器待机过程中运行的一段小程序,响应一些唤醒源(遥控器,按键板,uart唤醒,...原创 2019-09-06 18:28:23 · 3391 阅读 · 0 评论 -
MST8386 新增私有分区
android平台产品开发通常会,产品方案商通常会新增分区存放私有文件,key,bin等等。通过分析releaseimage.sh 文件,可以看到函数release-images中会调用split-fs-partition,release-fs-partition,make-fs-partition 来创建system,userdata,vendor,cache,tvservice,tvcon...原创 2019-09-04 19:35:55 · 1813 阅读 · 0 评论 -
Nova Tek Hdmiout 小板调试总结
NovaTek HDMI out小板调试涉及知识点:1.Mboot 添加命令行指令”hdmiout”;2.Mboot 添加功能宏,可配置编译;// UConfig3.Mboot 模块I2C编程;4.DDC/CI 协议NovaTek out 小板大量服务于传统显示器。目前在hht 658 上面应用的作用是接入vb1信号,然后透传输出一个vb1信号直接给屏,再输入一路HDMI信号。其小板...原创 2019-08-14 15:55:35 · 2321 阅读 · 0 评论 -
M平台 按键板/触摸框 虚拟uinput 设备
基于Android平台的TV 产品,输入设备中除了上篇提到的遥控器,空鼠。还有一些模拟出来的uinput 设备“Mstar Smart TV Keypad” ,“libxTouchScreen” 。1. 虚拟按键板上篇我们通过getevent -l 可以看到device 2(/dev/input/event3)是属于按键板的keypad设备,在Mstar 平台作为一个服务在后台运行在运...原创 2019-07-31 11:55:07 · 1855 阅读 · 0 评论 -
M平台input设备分析
在Android平台通常有多个输入设备,遥控器,按键板,触摸屏/触摸框,鼠标,蓝牙笔等等。归根结柢都是属于Linux 平台的一个input device,上面的多个种类的输入设备是input device 的封装。下面以手上平台为例,一起学习了解遥控器设备的注册流程。android 输入设备的查询如图:上面描述了四个输入设备:触摸框(libxTouchScreen),按键板(MSt...原创 2019-07-30 18:19:16 · 827 阅读 · 0 评论 -
A触摸框协议分析
A触控框协议分析触摸框串口坐标数据包包的大小基本上都是67 个Byte,但是格式稍有差异。有的6个点,有的10个点,带宽度和不带宽度,某个字节特殊定义等等。一、串口配置波特率: 115200数据位: 8位停止位: 1 位奇偶校验: 无二、触摸框规格触摸框的分辨率为32767*32767,坐标原点为左上角。当无触摸时,不发送数据,当有触摸时,触摸框通过串口发送一包67 B...原创 2019-07-15 18:03:00 · 1183 阅读 · 1 评论 -
Zygote,SystemServer启动分析
内核启动完成之后,Android的Init进程就会接管后续系统的初始化工作。 init进程启动之后,就会开始解析系统的*.rc 脚本,解析完成之后就开始启动各种service服务,然后修改权限,挂载相关目录,创建相关文件,目录。下面下简单介绍一下脚本中相关command和action的对应关系struct { const char *name; int (*func)(原创 2016-04-29 18:47:53 · 903 阅读 · 0 评论 -
Android 组件Activity启动流程分析
本篇相关流程分析基于Android4.4源码。通常我们启动一个Activity都是通过startActivity来完成。下面我们分析一下关键流程,本篇中以前应用的主线程ActivityThread为界限一分为二。意图启动首先我们使用上下文对象来调用startActivity 从图中Activity的启动意图一直经过ContextWrapper,ContextImp,Instrument原创 2016-04-28 15:05:15 · 2259 阅读 · 0 评论 -
Android 应用进程启动流程
我们知道启动Activity时,在ActivityStackSupervisor.java中函数startSpecificActivityLocked里面会判断当前Activity所在application是否已经启动,如果启动,则直接创建Activity也即调用realStartActivityLocked,本篇讨论需要启动的Activity所属的application没有启动的情况,此时就会通原创 2016-04-29 14:31:42 · 2691 阅读 · 0 评论 -
Android ContentObserver 学习
当我们查询数据中某个值是否变化时,通常很耗时费力,数据量大时可能还需要开辟线程来做这种事,急需一种及时反馈机制来处理这种问题,ContentObserver的提供的很好的解决方案。 ContentObserver为内容观察着,目的就是捕捉内容的变化,当所观察的Uri发生变化时,就会被触发,当然有内容观察者就离不开内容提供者。内容观察者实现下面以Android源原创 2016-01-30 17:26:49 · 2788 阅读 · 0 评论 -
Android App 设置persist 类型系统变量异常分析
属性权限系统中存在多种前缀的系统变量,每种变量设置时对应的用户权限也不一样,系统变量的类型如下:/* White list of permissions for setting property services. */struct { const char *prefix; unsigned int uid; unsigned int gid;} proper原创 2015-11-20 17:09:05 · 3657 阅读 · 0 评论 -
Android U盘拔插提示音分析
U盘提示音源头追溯对Android系统的架构,业务流程比较熟悉的老手来说就可以直接经验定位,迅速找到源码。新手一般通过捕捉到字串,图片来找对应功能的源码略显笨拙,也是菜鸟期的必经之路。其实U盘提示音也属于Android 系统的状态栏,通知管理类展示的功能之一,那么就从该服务(notification)开始查找。 dumpsys notification 前面的博客中有使用到d原创 2015-11-19 16:34:26 · 3314 阅读 · 5 评论 -
Android 音效流程分析
音效流程分析音效事件起源Android 平台所有view类型控件的touch,遥控器按键等事件在系统音效开启时,都可以触发按键音。音效事件流程分析从touch事件为例,整个流程如下图所示: 如图中所示,在touch事件触发后,onTouchEvent会被调用,接着performClick就会处理Click事件, /** * C原创 2015-11-18 17:01:29 · 3523 阅读 · 0 评论 -
Android 音量控制流程分析
在Android平台上,音量键,主页键(home),都是全局按键,但是主页键是个例外不能被应用所捕获。下面分析一下音量按键的流程,主要从framework层处理开始,至于EventHub 从驱动的/dev/input/event0获取按键信息到上抛属于Android input 系统方面的流程,下面基于android KK平台分析。系统层接收音量按键ViewRootImpl.p原创 2015-10-15 18:56:58 · 10658 阅读 · 2 评论 -
Android Binder 通信机制学习(四)
Binder 机制详解—Binder 系统架构本篇将从架构角度分析binder, 介绍binder机制的层次划分,并着重分析驱动适配层和Binder核心框架层。Binder层次划分Binder层次划分如下图所示:(1) 驱动层正如大家所知道的,Binder机制是需要Linux内核支持的,Android因此添加了binder驱动,binder转载 2015-07-08 16:57:53 · 1155 阅读 · 0 评论 -
Android 初始化之Zygote
系统整体框架了解android初始化之前,有必要了解一下系统的整体框架,下图是网上流传比较经典的架构图:android的启动主要是linux内核启动之后,init进程来接手Android的初始化,完成后续一些服务和应用的启动,所有上层的应用和服务都依赖Dalvik VM,所以该虚拟机应用该在所有应用启动之前完成初始化。Zygote初始化zygote进程实际上就是原创 2015-07-02 18:06:20 · 801 阅读 · 0 评论 -
Android BitTube 学习
BitTube来龙去脉SensorManager.cpp文件展开客户端从JNI获取SensorServer服务,创建SensorEventConnection,SensorEventQueue,并通过SensorEventQueue与SensorEventConnection加交互从底层获取数据,android_hardware_SensorManager.cpp作为客户端JNI层原创 2015-01-27 15:09:03 · 1762 阅读 · 0 评论 -
init.rc 学习
转自:1.init时设置设备权限init可执行文件是Android系统运行的第一个用户空间的程序,它以守护进程的方式运行2. init.rc中的内容在Android中使用启动脚本init.rc,init启动脚本路径:system/core/rootdir/init.rc可以在系统的初始化过程中进行一些简单的初始化操作,init.rc脚本被直接安装到目标系转载 2014-11-07 15:15:37 · 983 阅读 · 0 评论 -
android如何在init.rc中添加/dev/字符设备节点创建权限
android如何在init.rc中添加/dev/字符设备节点创建权限system/core/init/init.csystem/core/init/keywords.h:77: KEYWORD(device, COMMAND, 4, do_device)do_deviceadd_devperms_partners/init.rc中我们可以为转载 2014-11-07 15:16:06 · 5548 阅读 · 0 评论 -
Android 学习导航
Android系统的编译原创 2014-08-28 15:20:42 · 676 阅读 · 0 评论 -
Android 平台根目录文件
> 系统分区# adb shell# mount转载 2014-08-28 14:07:19 · 834 阅读 · 0 评论