
android
文章平均质量分 75
linuxarmsummary
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android GPS学习 (一) :GPS 启动流程
一、Settings打开GPS的方法往数据库里面写值,然后framework层读取值再做相应处理。packages/apps/Settings/src/com/android/settings/location/LocationSwitchBarController.javapublic void onSwitchChanged(Switch switchView, boolean isChecked) { mLocationEnabler.setLocationEnabled(isC转载 2021-01-27 10:52:14 · 1726 阅读 · 0 评论 -
hidl 服务启动流程
版权#framework—> Vendor Interface —> hal###Vendor Interface:`Android O` 新增加的一个机制,用于将`framework` 与 `hal` 分开,便于在系统升级时,`OEM` 厂商 跳过`SoC` 厂商,先对`framework`进行升级。例如:8.0 之前: framework 与 hal 是紧耦合的存在于 system.img 中,因此进行版本升级时需要: OEM 厂商适配framework ,SoC厂转载 2021-01-25 11:50:51 · 1660 阅读 · 0 评论 -
Android P HAL层添加HIDL实例(详细实现步骤)
Android P HAL层添加HIDL实例本文是参照 https://www.jianshu.com/p/b80865c61d8e 教程介绍实现,原理请参考原作者。本文将介绍如何在P OS上添加HIDL详细实现过程,简单增加seLinux策略使得可以在system_service调用测试,并用模拟器emulator验证。调用过程为 APP->TestManager->TestService->ITest.hal文章目录Android P HAL层添加HIDL实例.转载 2021-01-19 20:39:48 · 845 阅读 · 0 评论 -
Chromium进程间的通信机制浅析
Chromium进程间的通信机制浅析(android版本)(一)一、 综述Chromium的多进程模型意味着会有频繁的进程间通信,其中主要的IPC方式是命名管道。在遵循posix标准的操作系统中,通过UNIX域套接字来实现命名管道。每个render进程都会分配一个命名管道来与browser进程通信,并且该管道是以异步方式使用,以确保不会因等待而阻塞。Chrome最主要有三类进程,一类是Browser主进程;各个Render进程;另外还有一类是Plugin进程,每一个插件,在Chrome中都.转载 2021-01-15 00:19:22 · 883 阅读 · 0 评论 -
从源码角度看Binder
从源码角度看BinderRickAi+ 关注预计阅读时间148分钟2 年前简介Binder在Android中堪称武林秘籍中的"易筋经",无论是菜鸟还是老鸟都对之神往。Binder架构是进程间相互通信的最常用手段,四大组件的基本功能都是依赖着Binder才能够实现的。为了开发者能够使用java与cpp进行binder通信,binder的设计贯穿了framework、native和kernel层,开发者可以轻松的在上层使用binder向其它进程发起数据通信。这是我第三次系统性的阅读.转载 2021-01-15 00:07:20 · 387 阅读 · 1 评论 -
HIDL for linux 测试环境搭建
Update readme a littleMarius Gripsgard authored 2 years ago92eae373Name Last commit Last update hwtests Add some hardware tests 2 years ago src Dont do first_stage, dont set time values and dont wait for coldboot 2 years ago .原创 2020-12-30 11:56:54 · 310 阅读 · 0 评论 -
android 系统级别知识库
android彻底理解安卓应用无响应机制Android技术架构演进与未来理解Android P内部API的限制调用机制global reference限制策略深度解读ArrayMap优势与缺陷源码解读epoll内核机制源码解读poll/select内核机制源码解读Linux等待队列理解Android.bp解读Android进程优先级ADJ算法Binder Driver缺陷导致定屏的案例系统角度解读Android P新特性深度剖析APP保活案例跑mon.转载 2020-12-28 22:07:13 · 409 阅读 · 0 评论 -
写给 Android 应用工程师的 Binder 原理剖析
转载:如果你喜欢我的文章,就关注下我的公众号 BaronTalk 、 知乎专栏 或者在 GitHub 上添个 Star 吧! 微信公众号:BaronTalk GitHub:https://github.com/BaronZ88 个人博客:http://baronzhang.com 一. 前言这篇文章我酝酿了很久,参考了很多资料,读了很多源码,却依旧不敢下笔。生怕自己理解上还有偏差,对大家造成误解,贻笑大方。又怕自己理解不够透彻,无法用清晰直白的文字准确的表达.转载 2020-12-28 17:18:36 · 175 阅读 · 0 评论 -
android binder机制---Binder驱动
4 Binder驱动binder机制到底是如何从代理对象找到其对应的binder实体呢?其实,在binder驱动层,还有个与之相对的结构,叫做binder_proc。示意图如下,Binder驱动是Android专用的,但底层的驱动架构与Linux驱动一样。binder驱动在以misc设备进行注册,作为虚拟字符设备,没有直接操作硬件,只是对设备内存的处理。主要是驱动设备的打开 (binder_open),数据操作(binder_ioctl)。用户态的程序调用Kernel层驱动是需.转载 2020-12-28 17:14:38 · 504 阅读 · 0 评论 -
CDC-ECM 和 RNDIS
Home Categories Tags About FeedCDC-ECM 和 RNDISCategory: networkTags: networklinuxwifi###1. USB-CDCUSB协议中的的CDC类是USB通信设备类 (Communication Device Class) 的简称, CDC类是USB组织定义的一类专门给各种通信设备(电信通信设备和中速网络通信设备)使用的USB子类, 而USB-cdc又可以分为几个子类CDC...转载 2020-12-24 10:39:37 · 14676 阅读 · 0 评论 -
Android RIL RILJ, RILC, RILD
Posted by LXG on September 12, 2019https://lixiaogang03.github.io/2019/09/12/Android-RIL/Telephony 整体架构图背景由于 Android 开发者使用的 Modem 是不一样的,各种指令格式,初始化序列都可能不一样,GSM 和 CDMA 就差别更大了,所以为了消除这些差别,Android 设计者将ril做了一个抽象,使用一个虚拟电话的概念。这个虚拟电话对象就是GsmCdmaPhone, Ph转载 2020-12-21 16:08:49 · 3591 阅读 · 0 评论 -
android build system
1、gcc编译参数详解1)-E指示编译器对输入文件进行预处理,并将结果输出到标准输出(控制台)。预处理包括头文件的包含、宏定义的扩展、条件编译的选择等。2)-D和-U-D在命令行定义宏,作用等同于在代码中进程宏定义;-U用于取消宏定义。例如–DDEBUG=1 <=>#define DEBUG 1 #include <stdio.h> int main() { printf("hello world!\n");...转载 2020-12-10 15:56:46 · 174 阅读 · 0 评论 -
Android.mk 编译流程分析--android的build系统
关于Android.mk,可以很容易找到关于它怎么编写的资料,不过最近在移植一个开源的linux项目,抛弃源工程的configure+make机制放入android源码里面用 mm命令来来编译,总是各种坑,在android源码里面编译要求很高比如 一个int 函数没有return,也会报错,编译的模块需要依赖一个自己私自开发的so库时候,用参数 LOCAL_LDFLAGS来指定,也是种种问题,这些问题比如最终发现多了一个空格等等,甚至于解决了也是不知其然,被迫无奈,来探究一下mm这个命令到底是干了啥:具转载 2020-12-10 15:51:26 · 412 阅读 · 0 评论 -
第三期 Android Kernel 下载和编译 《手机就是开发板》
Android源码默认不包含他所使用的Linux内核源码,所以需要另外下载和编译。在生成镜像包时将单独编译生成的Image文件整合到boot.img中,这一期我们来下载和编译kernel。android kernel是在Linux kernel的基础上修改而来的,增加了适用于移动设备的IPC系统,日志系统,电源管理系统等等,android刚起步时kernel部分作为Linux kernel的一部分,但google的某些非开源做法不符合Linux的开源理念,被剔除了Linux的队伍,其实android毕竟..转载 2020-12-03 14:22:36 · 584 阅读 · 0 评论 -
Ubuntu中玩转Android模拟器
近来研究了下Android emulator,就是Android Studio中用于调试App的虚拟机AVD(Android Virtualized Device)。本来是件挺平淡无奇的事情,但非要给生活比个””耶…..”(^-^)V 需求是,在Linux OS中,使用自定义的Android Kernel! 由于烂樱桃本人只略懂一丢虚拟化技术,对于Android算是一窍不通,所以,本文主要记录步骤为主,木有原理性的东西。0. 准备 安装Android Studio到Android Studio 官网转载 2020-12-02 20:23:09 · 12287 阅读 · 0 评论 -
SMS and GPRS: Multiplexing GSM module on BeagleBone Black using n_gsm
I'm using simcom 800H cellular module with my BeagleBone Black which is very similar to the popular simcom 900. I want to do two main things with the simcom module Use AT commands to configure settings and send and receive messages ...转载 2020-12-02 11:11:52 · 247 阅读 · 0 评论 -
Android10.0编译系统
原创 编译系统总结篇-Android10.0编译系统(十一) 摘要:Android10.0编译系统总结阅读本文大约需要花费20分钟。文章首发微信公众号:IngresGe专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢!欢迎关注我的公众号![Android取经之路] 的源码都基于Android-Q(10.0) 进行分析[Android取经之路] 系列文章:《系统启动篇》Android系统架构 Android是怎么启动的 Android 10.0系统启动之init进程 A..转载 2020-12-01 16:39:38 · 348 阅读 · 0 评论 -
Android源码编译详解 get_make_command
唉!最近忙新项目,周末把笔记整理了下忘了发出来了,今天继续分享下源码编译的第三阶段,make阶段,由于这个阶段的工作主要是编译工具进行的,像gcc这种其内部实现是相当复杂,个人功力有限,暂时没法深入去了解!但是我们可以从大概看下的过程,然后再去看看make,m,mm等命令的具体区别!!注意:不了解第一第二个阶段的可以先看看下面这两篇文章Android源码编译详解(一)Android源码编译详解(二)一、make函数1、make函数从envsetup.sh脚本中我们知道make函数被定转载 2020-12-01 16:20:19 · 232 阅读 · 0 评论 -
Android编译流程(一):envsetup.sh文件解析
目录(一)开发环境 (二)概述 (三)函数 hmm gettop printconfig findmakefile get_make_command make xxgrep ggrep jgrep cgrep resgrep mangrep sepgrep rcgrep sgrep mgrep treegrep godir print_lunch_menu add_lunch_combo l转载 2020-12-01 15:57:22 · 1037 阅读 · 0 评论 -
Android系统开发进阶-Android编译系统介绍
Android系统开发进阶-Android编译系统介绍2020-02-06 Android系统开发进阶 Android 550 Comments1. 编译系统变化Android 最初是用 Android.mk 来定义模块的, Android.mk 本质上就是 Makefile。随着 Android 工程越来越大,包含的模块越来越多,以 Makefile 组织的项目编译花费的时间越来越多。google 在 Android 7.0 开始引入了 ninja 编译系统。相对于 make 来说 ninj转载 2020-12-01 15:47:35 · 605 阅读 · 0 评论 -
android8.1上新增camera设备
在工作中,camera这一块上,可能会有各种各样的需求。比如有人想新增一个虚拟摄像头,当用户app打开摄像头设备时,打开的不是系统默认的camera hal代码,而是自己指定的代码,用自己事先准备好的视频数据,来喂给app;也有人想在系统默认的一套app框架上,新增一个外接的usbcamera,并且要能溶入到camera框架中。app只需要指定usbcamera的id,就能像打开普通摄像头那样,去打开我们的usbcamera;也有人,想在现有的框架上,同时兼容老的hal1+api1流程的androi...转载 2020-11-27 12:16:58 · 933 阅读 · 0 评论 -
i.MX8QM Android 平台上 GPS 启动流程
目的:分析 i.MX8QM Android 平台上 GPS 启动流程硬件平台:IMX8QMMEK EVM BOARD软件环境:IMX-P9.0.0_2.1.0-AUTO-GA系统在启动后会首先启动 LocationManager,这项服务是在 SystemServer.java 中启动的,对应到的代码如下图所示,frameworks/base/services/java/com/android/server/SystemServer.java...转载 2020-11-26 16:28:01 · 626 阅读 · 0 评论 -
安卓平台下的GPS架构介绍及驱动移植记录
一、前言我的工作是关于汽车车机BSP部分。汽车车机,其实基本和人们日常所用的手机一样,也是安卓平台的。所谓安卓,就是一层安卓服务包裹着Linux内核所形成的操作系统。BSP组,主要工作内容就是负责soc的Linux系统部分的驱动移植、调试,及BUG解决。从毕业到现在,工作也有大半年了。跟着前辈学习GPS模块的移植、调试,和BUG解决也有差不多两个月了。心里想着,是时候写一篇关于GPS驱动移植学习的总结和笔记了。于是今天,我尝试着动手开始梳理这两个月来的所学所知。二、U-blox m8转载 2020-11-23 14:43:01 · 2099 阅读 · 1 评论 -
hidl GNSS
hidl程立001 2018-03-05 18:08:00 2615 收藏 4 分类专栏: 源码分析版权#framework—> Vendor Interface —> hal###Vendor Interface:`Android O` 新增加的一个机制,用于将`framework` 与 `hal` 分开,便于在系统升级时,`OEM` 厂商 跳过`SoC` 厂商,先对`framework`进行升级。例如:8.0 之前: framework 与 h.转载 2020-11-23 10:50:59 · 966 阅读 · 0 评论 -
HwBinder入门篇-Android10.0 HwBinder通信原理(一)
HwBinder入门篇-Android10.0 HwBinder通信原理(一)IngresGe 2020-08-02 21:14:49 4136 收藏 20 分类专栏: Android取经之路 # 2.进程间通信 文章标签: Android10.0 hwbinder binder hal hidl版权摘要:本节主要来讲解Android10.0 HwBinder的通信原理概要阅读本文大约需要花费18分钟。文章首发微信公众号:IngresGe专注于Android系统级源码转载 2020-11-23 10:30:49 · 715 阅读 · 0 评论 -
从linux usb bus节点来认识usb linux usb认识
首先从linux dmesg来认识usb:<6>[19.610046]msm_hsic_hostmsm_hsic_host:QualcommEHCIHostControllerusingHSIC<6>[19.620391]msm_hsic_hostmsm_hsic_host:newUSBbusregistered,assignedbusnumber1<6>[19.659942]msm_hsic_hostm...转载 2020-11-17 17:57:51 · 573 阅读 · 0 评论 -
shiftc / android-usb
https://github.com/shiftc/android-usb/blob/master/1.usb_framwork_in_android.md553 lines (469 sloc) 17.8 KBcode pathjava:frameworks/base/services/usb/java/com/android/server/usbframeworks/base/core/java/android/hardware/usb/jni:framewo..转载 2020-11-17 17:50:00 · 364 阅读 · 0 评论 -
DNS 解析器(DNS Resolver)
DNS 解析器(DNS Resolver)DNS 解析器模块可保护用户免受 DNS 拦截和配置更新攻击,并改进了 DNS 解析的网络性能。此模块包含用于实现 DNS 桩解析器的代码,该解析器可将www.google.com等名称转换为 IP 地址(例如2001:db8::1)。DNS 桩解析器支持 Java API 元素(如InetAddress#getAllByName和Network#getAllByName)以及原生网络功能,且可发送和接收 DNS 查询以及缓存结果。Android...转载 2020-11-11 15:04:29 · 5956 阅读 · 0 评论 -
android 日记
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/原创 2020-10-01 21:21:35 · 210 阅读 · 0 评论 -
Android 3G通信
原创Android——4.2 - 3G移植之路之 APN (五) APN(Access Point Name),也就是 接入点 ,移动设备使用数据流量上网必须配置的一个参数,代表以何种方式来连接服务台开启数据流量功能. 一般有访问WAP或者connect 因特网,国内的运营商2G,3G标识如下: 移动公司:2G:GSM、3G:TD-SCDMA 联通公司:2G:GSM、3G:WCDMA 电信公司:2G:CDMA、3G:CDMA2000 关于具体某个运营商的几G网络 的APN 是什么具体可参考/dev...转载 2020-09-18 22:58:08 · 202 阅读 · 0 评论