Android
文章平均质量分 69
主要是工程用的APP开发
lhh_qrsly
嵌入式领域软件和硬件知识分享
展开
-
Android Studio 阅读Android源码
如果你整编过源码,查看out/host/linux-x86/framework/idegen.jar是否存在,如果不存在,进入源码根目录执行如下的命令:source build/envsetup.shlunch [选择整编时选择的参数或者数字]mmm development/tools/idegen/如果没整编过源码,可以直接执行如下命令单编idegen模块:source build/ensetup.shmake idegenmmm development/tools/idegen/id原创 2021-07-26 14:58:24 · 352 阅读 · 0 评论 -
高通平台之TP代码分析
TP驱动芯片厂商主要有:Goodix(汇顶),FocalTech(敦泰科技),cypress(赛普拉斯),synaptics(新思)。TP驱动的调试主要是将接口调通。从TP厂商获取驱动和配置资料。4.2.1. 集成或者使用系统自带的TP驱动查找kernel/drivers/input/touchscreen,看是否有对应的驱动。如果没有,可以从高通的网站下载驱动或者找厂商要驱动由于TP通过I2C与处理器通信,所以只要调通I2C,TP调试工作基本就完成了。通过kernel log 查看类似这些pr转载 2021-06-09 15:54:41 · 1575 阅读 · 0 评论 -
高通平台 屏幕相关问题
导致触摸屏乱跳的原因大概分为5类:(1) 触摸屏硬件通道损坏(2)触摸屏固件版本太低(3) 触摸屏工作电压异常(4) 射频干扰(5)触摸屏校准异常TP供电电压异常1.现象: TP无规律的乱跳2.问题分析: TP无规律的乱跳,说明TP自身工作不正常,当TP的供电小于其正常工作电压时,会引起此现象3.根本原因: TP供电异常4.改进措施: 修改TP供电电压,使其正常,可能需要修改LDO供电,硬件有可能需要改板射频干扰1.现象: 拨号打电话时,号码拨出转载 2021-06-09 14:39:05 · 395 阅读 · 0 评论 -
Android USB MTP 的激活流程
废话少说, 先上两张时序图 , 图片有点大, 建议用新窗口打开或者另存到本地查看图1: UsbSettings的流程图2: property属性的触发事件流程好, 开始分析从图1开始, 当用户从Setting UI里面点了一下那个MTP的选择框后,引起一系列的操作,说白了,这里绕那么多个圈, 无非就是想发个消息通知UsbHandler而已, 然后就等待状态更新, 真正干活的就是图2.这也不复杂,就是为后面更新persist.sys.usb.config这个property组装合适的value,转载 2021-05-27 13:26:33 · 871 阅读 · 0 评论 -
AIDL原理解析
首先为什么需要aidl?下面是不需要aidl 的binder的IPC通讯过程,表面上结构很简单,但是有个困难就是,客户端和服务端进行通讯,你得先将你的通讯请求转换成序列化的数据,然后调用transact()函数发送给服务端,而且还得制定一个小协议,参数谁先谁后,服务端和客户端都必须一致,否则就会出错。这样的过程有没有觉的很麻烦,如果有上百个接口,那可就要疯掉了。可不可以就像调用自家函数那样呢?而不需要麻烦的将参数值转化成序列化数据呢?由此AIDL诞生了。好,我定义一下服务的函数,然后写成一个inter转载 2021-04-21 15:23:42 · 885 阅读 · 0 评论 -
上层APP调用底层硬件驱动过
APP应用程序->应用框架层->硬件抽象层-> 硬件驱动程序一、硬件驱动层 进入kernel/drivers文件夹中,创建一文件夹,放入驱动程序。包括头文件,C文件,Makefile,Kconfig。同时对drivers下的Makefile跟Kconfig进行相应的添加,这样配置编译选项后,即可编译。编译完后,可以在/dev,/proc,/sys/class中得到相应的文件,其中dev下的文件即为该设备文件。二、硬件抽象层 进入源码根目录下的hardw转载 2021-04-02 15:11:18 · 284 阅读 · 0 评论 -
Android 查看及设置 SELinux 状态
先给出SELinux查看和设置状态的方法查看 SELinux 状态:adb shell getenforce1设置SELinux状态:adb shell setenforce 0adb shell setenforce 112下面对这两种状态做个简单的介绍:在Android KK 4.4 版本后,Google 有正式有限制的启用SELinux, 但在7.0时又对SELinux加强了限制。(1) setenforce 0设置SELinux 为permissve mode, 只审查权转载 2021-04-02 14:14:47 · 2350 阅读 · 0 评论 -
从上层APP到底层驱动的调用过程
上层应用APP1)源文件:packages/experimental/Freg/├── AndroidManifest.xml├── Android.mk├── res│ ├── drawable│ │ └── icon.png│ ├── layout│ │ └── main.xml│ └── values│ └── strings.xml└── src└── shy └── luo └── freg .转载 2021-03-23 13:55:10 · 316 阅读 · 0 评论 -
安卓平台的功耗一般分析
1、底电流调试(Rock Bottom Current Optimization)底电流在手机飞行模式下调试。每个平台的底电流数据可能不一样,具体可以参考release出来的Current Consumption Data文档或者release note。一般情况下的底电流参考数据上限是:512M RAM < 1.5mA; 1G RAM < 2mA; 2G RAM < 2.6mA1.1校准RF保证RF的PA、Antenna switch、Tuner、APT、GPIO工作在正常状态翻译 2021-02-05 15:11:51 · 895 阅读 · 0 评论 -
高通平台配置开机后长按power key功能
开机后长按power key可实现系统重启、关机等功能,如下可配置长按时间以及长按功能:在kernel中有的配置项将覆盖xbl中的配置,即只配置如下第1点即可kernel/…/pmxxx.dtsi pmxxx_pon: qcom,power-on@800 { compatible = "qcom,qpnp-power-on"; ... qcom,pon_1 { qcom,pon-type = <0>; qcom,support-reset = <1>转载 2021-02-05 14:00:12 · 3158 阅读 · 0 评论 -
高通msm8909 平台camera 系统软件架构
高通对于 camera 的代码组织大体是遵循 Android 架构的,但对于最核心的 sensor 端底层设置、ISP 效果参数等进行了单独的剥离,放在 daemon 进程中进行。一.camera daemon 进程daemon 进程作为单一进程,main 函数的入口,位置如下:/project/vendor/qcom/proprietary/mm-camera/mm-camera2/server-imaging/server.c/project/vendor/qcom/proprietary/翻译 2021-01-29 18:57:04 · 698 阅读 · 0 评论 -
高通MSM8909 CAMERA TUNING 基础
一. 重要概念:1.色温所谓色温,简而言之,就是定量地以开尔文温度(K)来表示色彩。英国著名物理学家开尔文认为,假定某一黑体物质,能够将落在其上的所有热量吸收,而没有损失,同时又能够将热量生成的能量全部以“光”的形式释放出来的话,它便会因受到热力的高低而变成不同的颜色,如下图:2. 标准光源是指模拟各种环境光线下的人造光源,让生产工厂或实验室非现场也能获得与这些特定环境下的光源基本一致的照明效果。标准光源通常安装在标准光源箱内,主要用于检测物品的颜色偏差。人造的标准光源主要有如下10种类型:翻译 2021-01-29 18:55:14 · 2406 阅读 · 0 评论 -
MSM8909 平台camera移植
原文地址:http://blog.chinaunix.net/uid-7213935-id-5749314.html一.硬件分析在调试的时候,一定要拿到电路图,模组规格书,SENSOR IC datasheet。下面是主 camera 电路图:由上面电路图我们看样看出,此模组有以下主要线路:1.电源:结合 OV8856 的 datasheet 可知,AVDD:2.8;IOVDD:1.8;DVDD:1.2V;2.控制讯号:RESET,POWERDOWN;3.通讯讯号:IIC 通讯,CLK,DA转载 2021-01-29 18:50:21 · 354 阅读 · 0 评论 -
android 系统从驱动到 app 添加一个系统服务
注:整理自某个pdfandroid系统从下至上分层:kernel → HAL -->routime(虚拟机和一些其他的库)–>framework–>app我们要添加的服务为 LedService在 app 中直接可以这样使用LedManager ledManage = getSystemService(Context.LED_SERVICE);ledManager.setOn();//设置手机灯的开关ledManager.setOff();要达到这个上面的目的,需要在系统的转载 2021-01-11 11:00:27 · 244 阅读 · 0 评论 -
Activity 的介绍和使用
Activity是什么Activity是Android的四大组件之一。是用户操作的可视化界面;它为用户提供了一个完成操作指令的窗口。当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示;以此来为用户提供交互的入口。在Android App 中只要能看见的几乎都要依托于Activity,所以Activity是在开发中使用最频繁的一种组件。Activity的生命周期在Android中会维持一个Activity Stack(Activity栈),当一个新的Acti翻译 2020-12-15 20:00:25 · 11425 阅读 · 0 评论 -
安卓 build/core/Makefile 以及main.mk
android make 系统总共分为四层 arch board device product在各个字android.mk文件中引用的定义都存放在./build/core/下!比如android.mk中的include (CLEARVARS)它对应的是在./build/core/config.mk中的CLEARVARS:=(CLEARVARS)它对应的是在./build/core/config.mk中的CLEARVARS:=(BUILD_SYSTEM)/clear_v翻译 2020-12-11 16:32:24 · 514 阅读 · 0 评论 -
高通modem(BP)简介
AP:Application Processor,即应用芯片BP:Baseband Processor,即基带芯片FCC(美国联邦通信委员会)认证要求将AP和BP分开,因为射频控制相关的功能(信号调制、编码、射频位移等)都是高度的时间相关的,最好能将这些函数放在一个CPU核上运行,并在这个CPU核上运行一个实时的操作系统,这样AP核上操作系统和驱动的bug就不会导致设备发送灾难性的数据到移动网络中;并且一旦BP被设计和认证好,不管你采用的操作系统和应用软件怎么变化,它都可以正确的执行通讯功能,手机的设计转载 2020-12-11 15:31:03 · 1703 阅读 · 0 评论 -
高通平台直接通过adb控制GPIO电平
首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入 Device Drivers-> GPIO Support ->/sys/class/gpio/… (sysfs interface)。/sys/class/gpio 的使用说明:gpio_operation 通过/sys/文件接口操作IO端口 GPIO到文件系统的映射◇ 控制GPIO的目录位于/sys/class/gpio◇ /sys/class/gpio/export文件用于通翻译 2020-12-09 19:53:22 · 1332 阅读 · 0 评论 -
Android使用adb命令直接修改文件
以修改hosts文件为例:由于某些原因,可能需要指定域名对应的IP地址。Android是基于Linux的系统,与Linux类似,通过hosts文件来设置。在Android下,/etc是link到/system/etc的,我们需要修改/system/etc/hosts来实现。但是这个文件是只读,不能通过shell直接修改。可以通过连接到PC上使用adb来修改。步骤如下:1、获得root权限:adb root2、设置/system为可读写:adb remount3、将hosts文件复制到PC:adb原创 2020-12-09 15:48:22 · 7330 阅读 · 0 评论 -
ubuntu16.4 adb 配置使用
打开terminalsudoapt updatesudo apt install android-tools-adbandroid-tools-fastboot 等待安装完毕adb version 检查是否安装成功正常情况下显示:Android Debug Bridge version 1.0.32首先使用adb version 查看有没有安装adb驱动,如果没有使用命令安装:sudo apt-get updatesudo apt-get install android-tools-adb.原创 2020-12-09 15:29:52 · 166 阅读 · 0 评论 -
SELINUX安全访问机制,配置
前言:此篇blog直接切入主题教大家怎么去修改相应代码,配置相应的寄存器直至设备正常运行,至于原理之前有博客介绍了,不在这里多谈了。应用层控制呼吸灯Android是基于Linux内核,设备的节点是设备驱动的逻辑文件,可以通过设备节点来访问设备驱动。但是由于Android 5.0及以上的版本,Google对源码环境普遍采用了SELINUX安全访问机制,APP及Framework层在默认情况下是无权限访问设备节点的。解决办法有两种:以System APP或者System Server进程开放权限。1)原创 2020-12-08 16:21:38 · 843 阅读 · 0 评论 -
Android系统 GPIO状态查询
GPIO口状态查询定制的上位机(Android系统) 外接的传感器,需要使用距离感应器功能,定位问题原因,采用分段调试:先查看上位机板子是否可以正常返回距离感应的状态检查传输线检查感应头是否正常我这里是第一步的问题,线和感应头都正常,所以先说一下如何来返回正常的感应状态距离传感器在检测到距离变化或者物体靠近时候会有高低电压的变化,并将信息通过数据线传输到上位机,adb shell 命令来进入到上位机,查看gpio口的状态变化C:\Users\Administrator>adb shell转载 2020-12-08 15:19:14 · 1525 阅读 · 0 评论 -
Win10 安装配置Android sdk及adb环境变量
今天在新买的win10系统笔记本上安装配置adb,开始觉得挺简单的事,但实际过程中……没想的那么简单了!好了,废话少说,直接正题。研究了好一会下,总算搞定,总结如下:1.下载Android SDK地址:http://tools.android-studio.org/index.php/sdk直接下载推荐了吧!下载目录自定(废话)2.安装Android SDK应该看到了吧!下载的是.exe文件,在windows系统上可以直接双击安装的~爽注意需要先安装配置java的,此处不再说明如果像我翻译 2020-10-21 01:32:01 · 506 阅读 · 0 评论