
android
文章平均质量分 73
li_liuliu
这个作者很懒,什么都没留下…
展开
-
2021-05-10
最近项目上经常遇到播放器相关的问题。所以没有办法,只能看一下Android 播放器相关的框架。通过最近的学习,个人感觉有一下几点心得。主要有一下几点需要注意:1.视频文件中的视频格式(video/avc)是如何确定的(mp4文件中的mime)2.解码插件是在OMXMaster文件中进行加载的。所以第三方插件接入口就在这个地方3.如何根据videoTrack加载插件列表中的解码库4.OMX与解码库之间的交互是通过mHandler进行的,而mHandler的初始化是在解码器加载的时候有解码器初始化的。原创 2021-05-10 16:56:17 · 164 阅读 · 0 评论 -
Android init service启动流程分析
在Android kernel启动完成之后,将会启动init进程,这个进程是用户空间的第一个进程。在init进程中将会解析init.rc文件。在init.rc文件中包含有一些系统服务。这些服务可以自动启动,或者是根据某些条件启动。在项目的开发过程中,有抓取开机log和开机报文的需求。最初的想法是把log和报文抓到U盘里面,但是分析系统启动 流程发现在开机的时候网络链接要早于U盘挂载,所以无法将开机的报文抓到U盘里。所以最终决定将开机报文分为两部分:1.开机启动过程的报文(U盘挂载之前);2.开机U盘挂载之原创 2021-03-20 17:20:45 · 1547 阅读 · 2 评论 -
蓝牙基本概念以及Android中蓝牙enable/discover流程分析
蓝牙基本概念两种蓝牙技术:Basic Rate (BR)和Low Energy(LE)这两种技术是不能互通的,也就是不能相互兼容。如果要确保和所有的蓝牙设备互通,只能同时实现这两种技术。BRBasic Rage是正宗的蓝牙技术,包括可选的(optional)的EDR(Enhanced Data Rate)技术,以及Alternate(交替使用的)MAC层和PHY层扩展(简称AMP)。LE...原创 2020-04-26 17:26:05 · 1665 阅读 · 0 评论 -
Android Activity 接收按键原理分析(1)
之所以Activity能够接收到来自底层的Keyevent是因为在显示时创建了一个InputChannel。当底层有按键事件时就会通过这个InputChannel传递上来。View的初始化在启动一个activity时将会调用ViewRootImpl.setView()函数。下面将这个函数中的主要部分给出:public void setView(View view, WindowManager...原创 2019-05-24 16:13:22 · 642 阅读 · 0 评论 -
Android Activity 接收按键原理分析(2)
按键传递过程接收按键的传递流程EventHub用来读取驱动中的event。InputReader负责将EventHub中的消息读取出来,之后InputDispatcher将event发送出来。具体代码如下InputReader.cppvoid InputReader::loopOnce() { ··· size_t count = mEventHub->getEvents(ti...原创 2019-05-27 10:45:53 · 863 阅读 · 0 评论 -
Android Log原理分析
在android开发的过程中,需要查看log信息来帮助分析。那么知晓log的原理就是比较重要的了。Framework 中的LogFramework中的Log比较简单,主要就是封装接口,在接口中调用println_native函数。下面只以其中的一个进行分析。public static int v(String tag, String msg) { if (tag == null) {...原创 2019-05-31 17:46:49 · 2703 阅读 · 2 评论 -
Android Vold学习笔记
原创 2019-06-10 16:32:38 · 230 阅读 · 0 评论 -
InputManagerService分析(2)
这篇文章补充了之前文章中没有的view初始化的流程分析。本文详细的分析了input event是通过何种方式传递到activity以及从驱动中读取到event后,jni是如何对按键进行上报的过程。通过本文的分析,能够基本上了解按键的整个传递过程。View的初始化在启动一个activity时将会调用ViewRootImpl.setView()函数。下面将这个函数中的主要部分给出:public ...原创 2019-08-13 15:16:06 · 387 阅读 · 0 评论 -
蓝牙梳理
根据目前对蓝牙的梳理情况,将蓝牙的大体结构梳理如上图。后面在此基础上分析蓝牙的结构。原创 2019-09-30 16:48:07 · 193 阅读 · 0 评论 -
Android Input keycode &scanCode
键值对接涉及到的文件:frameworks/native/include/input/KeycodeLabels.hexternal/kernel-headers/original/linux/input.hScanCode &KeyCode的对应关系主要log如下:D/InputReader( 3795): deviceId 1D/InputReader( 3795):...原创 2019-04-28 16:54:26 · 2453 阅读 · 0 评论 -
Android.mk转换Android.bp方法
1.整体编译SourceCode。会在out/soong/host/linux-x86/bin/中生成androidmk 文件。利用这个bin文件能够将Android.mk文件转换成Android.bp文件。例如,想要添加一个第三方的jar包。内容如下:LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE = com.a...原创 2019-01-18 16:05:59 · 6816 阅读 · 1 评论 -
Android 9.0 cmds
之前Android中的cmd都是bin文件,例如svc/settings等。这些命令的源码都是存放在android/framework/base/cmds目录下。在android 9.0中也是在这个位置,但是实现方式进行了改动。下面就来说说Android 9.0中是如何实现的。cmds的实现方式通过查看Android源码发现,在framework/base/cmds目录下面依旧存在这些目录结构...原创 2019-01-02 17:43:34 · 1196 阅读 · 0 评论 -
Handler典型使用方法代码分析
典型的Handler的使用方法Looper.prepared();Handler handler = new Handler();Looper.loop(); Handler 初始化和消息处理流程Looper的初始化Class Looper {static final ThreadLocal<Looper> sThreadLocal = new Thread...原创 2018-09-28 13:53:04 · 519 阅读 · 0 评论 -
Android Tel 拨打电话及来电流程分析
打电话流程接下来分析一下打电话的流程。输入电话号码的流程这里忽略。输入电话号码之后会点击拨打图标。之后就会走拨打电话的流程了。这部分是在packages/apps/Dialer/src/com/android/dialer/DialtactsActivity.java中实现的。下面分析源码分析 public void onClick(View view) { switc...原创 2018-09-28 15:05:34 · 2273 阅读 · 0 评论 -
Recovery流程梳理
文章目录1. Recovery介绍2. Framework recovery 分析2.1 Framework Recovery流程2.2 Framework Recovery 分析3. Recovery分析3.1 Recovery流程3.2 Recovery源码分析4. 升级的执行者 Updater分析5. OTA 目录结构6. 涉及到的其它内容1. Recovery介绍1.进入方式:rese...原创 2018-09-28 15:08:35 · 3150 阅读 · 0 评论 -
Recovery UI更新分析
文章目录1.Recovery流程2.Recovery UI初始化流程分析3.字体加载函数`gr_init`4.下面看一下图片加载函数`LoadBitmap`5.Recovery按键事件的监听6.Recovery 中图片的显示7.Recovery UI 更新1.Recovery流程2.Recovery UI初始化流程分析之前讲过Recovery 的流程。那么在定制化的过程当中,可能涉及到Re...原创 2018-09-28 15:10:52 · 1970 阅读 · 0 评论 -
InputManagerService分析(1)
title: InputManagerServicetags: 新建,模板,小书匠grammar_cjkRuby: true初始化在SystemServer中实例化InputManagerService,注册WMS.callback,之后就启动InputManagerService。SystemServerInputManagerServiceWindowManaActivityMan...原创 2018-09-28 15:12:19 · 319 阅读 · 0 评论 -
Android6.0&9.0 Wifi
在介绍Android9.0中wifi的架构之前,先介绍一下Android Treble项目。Android系统架构1.应用框架。 应用框架最常被应用开发者使用。作为硬件开发者,您应该非常了解开发者 API,因为很多此类 API 都可以直接映射到底层 HAL 接口,并可提供与实现驱动程序相关的实用信息。2.Binder IPC。 Binder 进程间通信 (IPC) 机制允许应用框架跨越进程...原创 2018-12-19 14:53:17 · 2629 阅读 · 0 评论