
Android
文章平均质量分 85
bobuddy
这个作者很懒,什么都没留下…
展开
-
Android SDK开发 安卓sdk开发和app开发
注意:如果不声明该属性,系统将假定默认值为“1”,这表示该应用兼容所有 Android 版本。如果应用不能兼容所有版本(例如,程序里使用了API 级别 3 中才引入的 API),但并未声明正确的 minSdkVersion,则当应用安装在 API 级别小于 3 的系统上时,应用在运行时尝试访问不可用的 API 时会发生崩溃。转载 2023-12-04 17:40:57 · 3256 阅读 · 0 评论 -
Android 驱动-点灯例子
android转载 2022-06-22 19:55:39 · 538 阅读 · 0 评论 -
Android 虚拟按键上报
key转载 2022-06-22 15:54:56 · 1070 阅读 · 0 评论 -
Android touch bringup
CTP转载 2022-06-20 17:14:15 · 973 阅读 · 0 评论 -
Android 安卓启动流程
android转载 2022-06-18 15:11:15 · 2599 阅读 · 0 评论 -
AIDL 和 HIDL
Aandroid转载 2022-01-15 10:32:43 · 11960 阅读 · 0 评论 -
高通sm4350充电流程
1, 基础知识: a, UEFI UEFI 统一可扩展固件接口(Unified Extensible Firmware Interface)是一套规范,定义了操作系统 (OS) 与平台固件之间的软件接口。可以简单理解为操作系统启动之前运行的一个程序。 其作用主要是初始化DDR、USB、PMIC等硬件设备,为操作系统提供合适的运行环境。 高通平台从MSM8998 用UEFI取代了LK。其使用 Tianocore EDK2 实现UEFI 规范的要求,Tianocore EDK...转载 2021-12-14 15:37:21 · 4175 阅读 · 5 评论 -
高通sm4350平台指纹移植
本文总结了高通sm4350平台指纹移植流程,厂家一般会提供移植文档,本文档可作为补充:准备工作:1、把指纹模组扣到主板上的SPI连接器上2、高通sm4350平台,Android R版本全代码,全编通过3、联系FAE获取指纹移植资料,主要包括: a, 驱动代码、DTS配置文件 b, 指纹CA,一般是动态库,例如vendor.fingerprint.default.so c, 指纹TA相关,包括编译脚本(SConscript文件)、源码、算法库 d, MMI测试a...转载 2021-12-14 15:22:28 · 4382 阅读 · 0 评论 -
compileSdkVersion, minSdkVersion 和 targetSdkVersion
android转载 2021-12-03 14:20:16 · 5570 阅读 · 0 评论 -
高通Android9.0源码兼容不同项目编译环境
android R转载 2021-12-01 17:37:34 · 699 阅读 · 0 评论 -
Android手机直播(四)Android Media API
一、文章说明最近工作实在太忙,很久没有更新文章了,收到很多小伙伴催更的消息,心中实在惭愧,趁着今天有空赶紧更新。第一篇文章从总体上介绍了Android手机直播,之后两篇文章分别介绍了视频和音频采集,这篇文章便开始介绍编解码相关的知识。Android提供很多和视音频处理相关的类,熟练使用这些相关的类,其实是能实现很强大的功能。视音频编解码一般分为两种,一种是硬编实现,一种是软编实现。这两种方式各有优缺点,硬编性能好,但是需要对兼容性进行相应处理;软编兼容性好,可以进行一些参数设置,但是软编一般性能转载 2021-09-26 15:32:07 · 599 阅读 · 0 评论 -
Android手机直播(三)声音采集
一、文章说明开始写文章了,才知道写文章真心耗费心力,希望自己尽量做到快速更新,也希望这些文章真心能帮助到开发者们。这篇文章主要讲述Android声音采集相关的知识,首先介绍声音的基础知识,然后介绍如何采集声音,最后再讲述Android上声音录制和回声消除的相关步骤。整个项目已经开源,开源地址:SopCastComponent二、基础知识声音的原理声音是振动产生的声波,通过介质(空气或固体、液体)传播并能被人或动物听觉器官所感知的波动现象。声音的频率一般会以赫兹表示,记为Hz,指每秒钟周转载 2021-09-26 15:14:35 · 4219 阅读 · 2 评论 -
Android手机直播(二)摄像机
一、文章说明上周开始写直播相关的文章,写了一篇手机直播总览的文章,没想到得到大家很多赞和关注,在此感谢大家支持。这篇文章将会讲述Android摄像头相关的知识,希望能对大家有所帮助。文章开始会简单介绍一下摄像头的成像原理,然后会讲述摄像头采集相关的一些图片格式,之后会讲述在直播项目中如何调用Camera。整个项目已经开源,开源地址:SopCastComponent二、成像原理摄像头结构上图是一个摄像头的结构图,可以看出一个摄像头由镜头、红外滤光片、光学传感器、软板FPC、数字信转载 2021-09-26 14:46:58 · 1149 阅读 · 0 评论 -
Android手机直播(一)总览
一、说明近两年来直播行业越来越火,各个直播平台加一起差不多300多家。有些直播平台做秀场、综娱类的直播(来疯直播),有的做游戏直播(熊猫直播),有的做体育赛事的直播(乐视直播),分类也各种各样。下面一张图很好地反映了国内直播平台的大致分类。直播平台本人有幸参与到了来疯Android手机直播的研发,本着技术分享的精神,现在写一系列的文章来介绍安卓手机直播,一方面希望能帮助大家了解Android手机直播相关的技术,另一方面也当作是自己工作一段时间的总结。注:1、这系列文章只涉及Androi转载 2021-09-26 14:10:47 · 1072 阅读 · 0 评论 -
Android 系统启动流程
1. Init 进程启动流程2. Zygote启动流程3. SystemServer启动流程1. Init 进程启动流程Android启动流程 init进程 –>Zygote进程 –>SystemServer进程 –>各种应用进程Init 进程init是第一个进程,我们可以说它是root进程或者说有进程的父进程。init进程有两个责任,一是挂载目录,比如/sys、/dev、/proc,二是运行init.rc脚本。init进程...转载 2021-08-20 21:00:56 · 479 阅读 · 0 评论 -
Android init 启动进程分析
Android init 启动进程主要分三个阶段分析:概述,Init如何被启动Init进程启动的源码分析rc语法分析1.概述:init进程是linux系统中用户空间的第一个进程,进程号为1.当bootloader启动后,启动kernel,kernel启动完后,在用户空间启动init进程,再通过init进程,来读取init.rc中的相关配置,从而来启动其他相关进程以及其他操作。init进程被赋予了很多重要工作,init进程启动主要分为两个阶段:第一个阶段完成以下内容:..转载 2021-08-20 20:25:24 · 2730 阅读 · 3 评论 -
Android 系统启动流程
概述:BootRom->BootLoader->Linux Kernel->Init->Zygote->SystemServer->LauncherBootLoader层:主要包括Boot Rom和Boot LoaderKernel层:主要是Android内核层Native层:主要是包括init进程以及其fork出 来的用户空间的守护进程、HAL层、开机动画等JAVA Framework层:主要是AMS和PMS等Service的初始化Applicati转载 2021-08-19 19:59:16 · 258 阅读 · 0 评论 -
Android系统架构
本文主要介绍Android的系统架构,Android使用linux内核(Marco kernel),但是Android的架构又与Linux系统有所不同,因此在介绍Android系统架构之前,我们先一起来了解一下Linux系统的架构。 Linux系统架构 Linux架构如下图所示:Computer Resources:硬件资源Kernel:内核Shell:shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是...转载 2021-08-19 19:48:19 · 185 阅读 · 0 评论 -
MTK-SPRD-QCOM 强制下载方式
SPRD : 1.KEYIN0+KEYOUT0; 2.KEYIN0+GND; 3.U1TXD+GNDQCOM : FORCE_USB_BOOT+GNDMTK : KPCOL0 + GND原创 2021-08-19 15:17:42 · 1230 阅读 · 0 评论 -
HIDL(HAL interface definition langguage)
HIDL的相关介绍HIDL的全称是HAL interface definition language(硬件抽象层接口定义语言),在此之前Android 有AIDL,架构在Android binder 之上,用来定义Android 基于Binder通信的Client 与Service之间的接口。HIDL也是类似的作用,只不过定义的是Android Framework与Android HAL实现之间的接口。在AIDL机制中Android 会提供一系列工具会将用户定义的*.aidl文件编译生成Clie.转载 2021-08-03 17:01:15 · 2314 阅读 · 0 评论 -
Android源码编译选项eng、user、userdebug的区别
Android源码编译选项eng、user、userdebug的区别1、各选项简要说明eng:debug版本user:release版本userDebug版本:部分debug版本2、详细介绍Android源码编译选项eng、user、userdebug是由Android.mk文件中的LOCAL_MODULE_TAGS配置项来决定的。其一般形式如下:? 1 LOCAL_MODULE_TAGS := user eng optional...转载 2021-04-22 09:03:11 · 2574 阅读 · 0 评论 -
Android 系统架构图
Android 操作系统架构开篇: http://gityuan.com/android/ https://cloud.tencent.com/developer/article/1429122Android架构图(五层框架):https://www.cnblogs.com/pengdonglin137/p/3858254.html官方系统架构图:https://developer.android.google.cn/guide/platform/Android S...转载 2021-04-20 17:30:54 · 2504 阅读 · 0 评论 -
Android 平台架构
平台架构Android 是一种基于 Linux 的开放源代码软件栈,为各类设备和机型而创建。下图所示为 Android 平台的主要组件。图 1.Android 软件堆栈。Linux 内核Android 平台的基础是 Linux 内核。例如,Android Runtime (ART)依靠 Linux 内核来执行底层功能,例如线程和低层内存管理。使用 Linux 内核可让 Android 利用主要安全功能,并且允许设备制造商为著名的内核开发硬件驱动程序。硬件抽象层 (HAL)...转载 2021-04-20 15:13:47 · 167 阅读 · 0 评论 -
Android系统架构
一、引言本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解Android系统的核心技术点,带领大家初探Android系统全貌以及内部运作机制。虽然Android系统非常庞大且错综复杂,需要具备全面的技术栈,但整体架构设计清晰。Android底层内核空间以Linux Kernel作为基石,上层用户空间由Native系统库、虚拟机运行环境、框架层组成,通过系统调用(Syscall)连通系统的内核空间与用户空间。对于用户空间主要采用C++和Java代码编写,通过JNI技术打通用转载 2021-04-19 16:26:13 · 382 阅读 · 0 评论 -
andriod ramdisk、boot.img、recovery.img之间的关系
一、ramdisk介绍 二、ramdisk.img介绍 三、ramdisk、boot.img、recovery.img之间的关系正文回到顶部一、ramdisk介绍ramdisk通过直面意思就大概能理解意思,ram disk虚拟内存盘,将ram模拟成硬盘来使用的文件系统。对于传统的磁盘文件系统来说,这样做的好处是可以极大提高文件访问速度;但由于是ram,所以 在掉电后,这部分内容不能保存。ramdisk文件系统是在系统上电后直接从磁盘一次性加载到内存,在整个运行期间都不会有写回操作,所.转载 2021-04-16 11:27:45 · 2509 阅读 · 0 评论 -
Android Recovery升级原理
摘要 1. Recovery相关概念 2. Android系统的启动模式 2.1 Android 各个分区介绍 2.2 Android的启动模式 2.3 如何进入Recovery模式 3. Recovery升级原理 3.1 应用层升级流程 3.2 OTA升级包的目录结构 3.3 Recovery模式下的OTA升级流程 4. Bootloader、BCB、Recovery与Main System之间的交互正文摘要Recovery模式指的是一种可以对...转载 2021-04-16 11:17:46 · 773 阅读 · 1 评论 -
JAVA虚拟机、Dalvik虚拟机和ART虚拟机
从Android5.0开始废弃了Dalvik,全面推行ART。Dalvik与ART的区别(1)在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这虽然会使安装过程比较快,但是会拖慢应用以后每次启动的效率。而在ART环境中,应用在第一次安装的时候,字节码就会预编译(AOT)成机器码,这样的话,虽然设备和应用的首次启动(安装慢了)会变慢,但是以后每次启动执行的时候,都可以直接运行,因此运行效率会提高。(2)ART占用空间比Dalvik大(字节码.转载 2021-04-16 10:44:47 · 628 阅读 · 0 评论 -
Android启动过程深入解析
当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样的? 什么是Linux内核? 桌面系统linux内核与Android系统linux内核有什么区别? 什么是引导装载程序? 什么是Zygote? 什么是X86以及ARM linux? 什么是init.rc? 什么是系统服务?当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍Android的启动过程,希望能帮助你找到上面这些问题的答案。Android是一个基于Linux的开源操作系统。x8转载 2021-04-15 16:06:01 · 2082 阅读 · 0 评论 -
Android P (9.0) 之Init进程源码分析
众所周知,init进程是Android系统的第一个用户进程,Android启动流程大致如下:init进程主要提供以下几个功能:挂载文件系统、生成部分设备节点、创建目录属性服务处理子进程终止分析和运行init.rc(等等rc文件)init进程代码路径为 system/core/init/init.cpp。今天我们主要是分析Android P的init的代码,其实各个版本的代码稍有不同,但是万变不离其宗。init进程的启动调试可以查看本文。init进程源码分析init.cpp文...转载 2021-04-15 14:34:13 · 542 阅读 · 0 评论 -
Android P (9.0) 之Zygote进程源码分析
init进程是用户空间的第一个进程,而zygote进程则是第一个java进程。zygote进程是init进程的子进程,init进程通过解析rc文件,运行了zygote进程。zygote是Android系统中一个相当重要的进程,它的主要功能就是执行Android应用程序。在Android系统中运行新的应用,如同卵子受精分裂一样,需要跟Zygote进程(拥有应用程序运行时所需要的各种元素和条件,如:虚拟机等)结合才能执行。Zygote进程zygote进程运行时,会初始化Art(或者Dalvik)...转载 2021-04-15 14:24:48 · 416 阅读 · 0 评论 -
The Android boot process from power on
Since mobile platforms and embedded systems has some differences compared to Desktop systems in how they initially start up and boot. This post will discuss the initial boot stages of an Android phone in some detail. Since we have used theBeagle Boardas ..转载 2021-04-15 11:27:01 · 445 阅读 · 0 评论 -
Andriod 启动流程
概述:Loader > Kernel > Native > Framework > Application细分:BootRom > Bootloader > Kernel > Init > Zygote > SystemServer > Launcher调用流程: crt0.S > kmain > arch_init > target_init > apps_init > aboot_initKernel初原创 2021-04-15 10:34:49 · 104 阅读 · 0 评论 -
Android平台开发指导(Android Porting Guide)
本文为Android平台开发人员和Android设备制造商提供了底层开发指导。如果你对Android的上层应用开发很感兴趣,请访问AndroidDevelopersSite。关于这份指导书这份指导书按照逻辑划分为几个部分(见目录)。在一个持续的开发过程中,Android是一个复杂的工程项目,随着版本和API的改变,这份指导书将会不断更新。至使用者对于精通嵌入式Linux的工程师而言,这本书非常有价值。但是,它的重点并不在普通的嵌入式Linux开发,而是更多提供Android平台的特色。..转载 2021-04-10 14:41:34 · 1090 阅读 · 0 评论 -
Android Recovery升级原理
Android Recovery升级原理摘要Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式(类似于windows PE或DOS)。也可以称之为安卓的恢复模式,在这个所谓的恢复模式下,我们可以刷入新的安卓系统,或者对已有的系统进行备份或升级,也可以在此恢复出厂设置(格式化数据和缓存)。1. Recovery相关概念Recovery: Recovery模式指的是一种可以对安卓机内部的数据或系统进行修改的模式,也指Android的Recovery分区OTA: Ove.转载 2021-03-29 16:39:00 · 2039 阅读 · 0 评论 -
Android 9.0 init 启动流程
本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。4.启动Kernel,加载驱动,硬件。5.启动Android,挂载分区,加载驱动、服务,init进程等。1.Android系统启动大致过程如下Androi...转载 2021-03-19 20:21:51 · 650 阅读 · 0 评论 -
Android适配多摄像头
从 Android P 开始,Android将添加对逻辑多摄像头和 USB 摄像头的支持。这意味着,除了前后两个摄像头外,Android手机的前置或者后置有两个及两个以上的摄像头。对此,对于Android开发者来说,就需要完成这方面的适配工作。多摄像头一台设备有多个摄像头没什么新鲜的,但是直到现在,Android 设备仍然最多只有前后两个摄像头。而新出的Android P系统将打破这一常规,今后Android将支持多个摄像头,用户想打开哪个就打开哪个。在Android P出现之前,我们可以使用如下的一转载 2021-03-12 17:28:38 · 1770 阅读 · 0 评论 -
驱动原理和逻辑说明
成长是螺旋式的,涉及到:深度(高度)和广度。(是否掌握某方面的知识,掌握或不掌握的程度;是否愿意,愿意或不愿意的程度;两者之间的关系;黑与白,有过度中间有赤橙黄绿青蓝紫;)目录:1.makefile、Kconfig、.config的区别2.输入子系统(流程,TYPE-A/B协议)3.外设模块(升降马达,屏的知识, 自动化测试APK导入)4.系统启动流程5.性能分析(TP划线慢,)6.代码,函数解读(kthread_run()函数,TP代码)7....转载 2021-02-25 20:45:33 · 1630 阅读 · 0 评论 -
Android 8.1 从零开始写 HAL – (1) 定义接口
Android 8.1 从零开始写 HAL – (1) 定义接口注意:本文基于 Android 8.1 进行分析Qidi 2020.07.17 (Markdown & Haroopad)【前言】我们都知道从Android 8.0开始, Google 启动了Treble 项目,自此开始推行 Binder 化的 HAL 实现。除少数类型 HAL 外,在Android 9.0及其之后的版本,Google 甚至要求大部分外设(peripherals)必须支持使用 Binder 化的 ...转载 2021-02-23 16:14:38 · 972 阅读 · 0 评论 -
Android 8.1 从零开始写 HAL – (2) 实现 HAL 主体
Android 8.1 从零开始写 HAL – (2) 实现 HAL 主体注意:本文基于 Android 8.1 进行分析Qidi 2020.07.18 (Markdown & Haroopad)【前言】通过上一篇文章《Android 8.1 从零开始写 HAL – (1) 定义接口》的努力,我们定义好了 demoComponent HAL 的接口和参数,也了解到编译时会自动产生 Binder 框架代码。通过 Binder 机制,经过 demoComponent HAL 的 Bp 和 B转载 2021-02-23 16:09:04 · 660 阅读 · 0 评论 -
Android 8.1 从零开始写 HAL – (3) 实现 Bp、Bn 端
Android 8.1 从零开始写 HAL – (3) 实现 Bp、Bn 端注意:本文基于 Android 8.1 进行分析Qidi 2020.07.18 (Markdown & Haroopad)【前言】既然 Binder 化的 HAL 依赖于 Binder 机制进行实现,那么我们自然必须按照 Binder 框架,相应编写 demoComponent HAL 的 Bp 端和 Bn 端。只有这样,才能打通客户端进程调用到服务端进程 —— 我们的 demoService —— 的通路。转载 2021-02-23 16:05:22 · 485 阅读 · 0 评论