android研究
申庆胜
这个作者很懒,什么都没留下…
展开
-
android surfaceflinger调研
android surfaceflinger调研原创 2022-11-18 10:38:56 · 625 阅读 · 2 评论 -
五指抓算法
android屏幕五指抓算法原创 2022-06-10 19:22:42 · 588 阅读 · 0 评论 -
一台机器执行monkey test测试出现概率死机
(34条消息) 一台机器执行monkey test测试出现概率死机_沉思-CSDN博客MTK平台遇到了许多ANR问题,此文章分析很有帮助,备用以后参考。原创 2021-07-02 20:32:31 · 202 阅读 · 0 评论 -
Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能
Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能 - 简书 (jianshu.com)(31条消息) (一)Android camera2 实现相机预览及获取预览帧数据流_ganfanzhou的博客-CSDN博客_android camera2原创 2021-06-22 10:56:48 · 494 阅读 · 0 评论 -
Apk解压后查看AndroidManifest.xml文件内容
一般对于我来说如果需要知道一个apk的包名的话,有两种比较快速的方式:(1)使用命令:aapt dump badging xxx.apk,一般是apk就在电脑上,使用比较方便。(2)使用命令:dumpsys window |grep mFocusedWindow ,通过查看当前window来知道包名,一般是这个apk就在开发平台上,使用比较方便。当然使用dumpsys activity也是一样的。但是如果又想知道包名,还想知道AndroidManifest.xml的具体内容,比如我之前遇到一..原创 2021-05-12 16:08:28 · 1467 阅读 · 0 评论 -
android img的sparse和ext4格式
由于现在系统的emmc容量越来越大,以及android应用的越来越庞大复杂,一些分区的size也越来越大比如system.img,userdata.img,cache.img,boot.img等。以前这些img的格式都是ext3或4,现在android环境默认情况下编译出的这些img是一种叫做sparse格式的文件。顾名思义 sparse是一种稀疏的文件描述格式,size比ext4的要小很多,而ext4格式的文件中有很多零填充。可以通过file命令来区分文件损坏那种格式。例如 fil...原创 2021-05-12 15:28:48 · 2164 阅读 · 1 评论 -
Java学习笔记9---类静态成员变量的存储位置及JVM的内存划分
笔记8提到了类静态成员变量的访问方式,但静态成员变量存储在哪里呢?在网上查阅不少资料,发现好多内容都是过时的了,其中主流观点是静态成员变量存放在方法区。JDK8之前,静态成员变量确实存放在方法区;但JDK8之后就取消了“永久代”,取而代之的是“元空间”,永久代中的数据也进行了迁移,静态成员变量迁移到了堆中(方法区是JVM的规范,永久代是方法区的具体实现)。作者: 蝉蝉请尊重作者劳动成果,转载请在标题注明“转载”字样,并标明原文链接:http://www.cnblogs.com/chan...转载 2021-04-29 18:02:26 · 4908 阅读 · 0 评论 -
Android A/B System OTA分析(一)概览
https://blog.csdn.net/guyongqiangx/article/details/71334889原创 2021-06-22 10:55:23 · 170 阅读 · 0 评论 -
Android AppWidget系统框架实现及应用
Android AppWidget系统框架https://blog.csdn.net/thl789/article/details/7887968 简要描述AppWidget系统框架,并对这里的组成元素做简要的阐述。Android中选取并绑定AppWidgethttp://blog.csdn.net/thl789/article/details/7880650 描述由Launcher作为AppWidgetHost发起,Settings中AppWidgetPickActi...原创 2021-04-25 16:06:38 · 300 阅读 · 0 评论 -
Andorid App Widget Framework分析之一:AppWidgetService(转)
以下是转eoe论坛keke的文章。--------------------------------------android在1.5版本新增加了时下流行的widget功能。坛子里也有不少童鞋对这个很感兴趣,也在开发相关的widget. 那么今天就来讲讲android这套widgetframework是如何工作的,应应景哈~~~~AppWidgetService.java 这是widgetframework的核心类,是系统service之一,它承担着所有widget的管理工作。Widget安..转载 2021-04-25 15:31:18 · 597 阅读 · 0 评论 -
Android完美解析setContentView 你真的理解setContentView吗?
https://blog.csdn.net/nugongahou110/article/details/49662211转载 2021-04-21 16:27:07 · 118 阅读 · 0 评论 -
Android Bluedroid source code analysis
Android Bluedroid source code analysis图1:应用层到协议层Android的bt整体结构如图1所示:应用层:使用蓝牙协议的各种应用,例如:蓝牙电话、音乐等。 Framework层:主要是android系统向应用层开放的蓝牙的相关接口。 Bluetooth Service:各种profile和adapter的服务端实现,framework端通过AIDL方式和这层进行调用和回调。 Bluedroid:蓝牙协议栈的实现,Bluetooth Se..原创 2021-04-15 15:48:31 · 3208 阅读 · 0 评论 -
Android进程保活的一般套路
版权声明:本文为LooperJing原创文章,转载请注明出处!自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,决定去总结一下,网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是最好的,结合很多资料,今天总结一下Android进程保活的一些方案,都附有完整的实现源码,有些可能你已经知道,但是有些你可能是第一次听说,(1像素Activity,前台服务,账号同步,Jobscheduler,相互唤醒,系统服务捆绑,如果你都了解转载 2021-03-01 17:30:29 · 135 阅读 · 0 评论 -
应用与系统稳定性第一篇---ANR问题分析的一般套路
ANR(App Not Responding)基本上99%的App都有,即使是系统,也有system_anr,我相信虽然ANR问题这样的普遍,还是有很多人对ANR问题即熟悉又陌生的,ANR中log信息怎么看?发生的场景有哪些?广播会发生ANR吗?我的App啥事都没有干怎么发生了ANR了等等一些问题,今天通过三个案例总结一下ANR问题分析的一般套路,以做备忘。一、ANR初步了解1、发生原因一句话总结:没有在规定的时间内,干完要干的事情,就会发生ANR。2、ANR分类从发生的场景分...转载 2021-03-01 10:42:21 · 1578 阅读 · 1 评论 -
Android性能优化的方方面面
https://www.jianshu.com/p/b3b09fa29f65?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io转载 2021-02-25 10:59:53 · 92 阅读 · 0 评论 -
Android 屏幕适配:最全面的解决方案
Android 屏幕适配:最全面的解决方案 - 简书 (jianshu.com)转载 2021-02-09 15:39:10 · 138 阅读 · 0 评论 -
Android事件分发机制详解:史上最全面、最易懂
Android事件分发机制详解:史上最全面、最易懂 - 简书 (jianshu.com)转载 2021-02-09 15:35:27 · 229 阅读 · 1 评论 -
Android应用开发性能优化完全分析
(81条消息) Android应用开发性能优化完全分析_工匠若水-CSDN博客转载 2021-02-02 18:15:27 · 319 阅读 · 1 评论 -
Android中处理崩溃异常
(81条消息) Android中处理崩溃异常_LiuHe-CSDN博客转载 2021-02-01 17:43:53 · 125 阅读 · 0 评论 -
android 处理未捕获异常
转自:http://blog.csdn.net/liuhe688/article/details/6584143大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开发者应该及时获取在该设备上导致崩溃的信息,这对于下一个版本的bug修复帮助极大,所以今天就来介绍一下如何在程序崩溃的情况下收集相关的设备参数信息和具体的异常信息,并发送这些信息到.转载 2021-07-02 20:30:40 · 579 阅读 · 0 评论 -
Android O不受后台执行限制的隐式广播
作为Android 8.0(API级别26)后台执行限制的一部分,针对API 26或更高的App无法再在AndroidManifest中隐式注册BroadcastReceiver。但是,目前有几个Broadcast免于这些限制。无论应用程序所针对的API级别如何,应用程序都可以继续为以下广播注册监听器。注意:即使这些隐式广播仍然在后台工作,您应该避免为它们注册Listener。 ACTION_LOCKED_BOOT_COMPLETED,ACTION_BOOT_COMPLETED 免除,因为.转载 2021-01-26 16:01:30 · 365 阅读 · 0 评论 -
Android权限--正常权限和危险权限
正常权限和危险权限系统权限分为几个保护级别。需要了解的两个最重要保护级别是正常权限和危险权限:正常权限涵盖应用需要访问其沙盒外部数据或资源,但对用户隐私或其他应用操作风险很小的区域。例如,设置时区的权限就是正常权限。如果应用声明其需要正常权限,系统会自动向应用授予该权限。如需当前正常权限的完整列表,请参阅正常权限。危险权限涵盖应用需要涉及用户隐私信息的数据或资源,或者可能对用户存储的数据或其他应用的操作产生影响的区域。例如,能够读取用户的联系人属于危险权限。如果应用声明其需要危险权限,则用户必须原创 2021-01-20 10:57:58 · 1385 阅读 · 0 评论 -
Am命令用法
一、概述作为一名开发者,相信对adb指令一定不会陌生。那么在手机连接adb后,可通过am命令做很多操作:拨打电话通过adb,可以直接拨打电话10086adb shell am start -a android.intent.action.CALL -d tel:10086打开网站比如,打开网站www.gityuan.comadb shell am start -a android.intent.action.VIEW -d http://gityuan.com启动应原创 2020-11-27 17:49:15 · 2645 阅读 · 0 评论 -
Android获得线性渐变某点的颜色
Android获得线性渐变某点的颜色安卓官方确实提供了好多非常强大的工具给我们了,例如我们最近经常在shape中加入gradient(渐变),像我的项目中用的是线性渐变, <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius...转载 2020-11-10 15:50:28 · 620 阅读 · 0 评论 -
LeakCanary中英文文档+使用例子
转自https://www.cnblogs.com/tianzhijiexian/p/4505620.htmlLeakCanary中英文文档+使用例子 Android 开源界最伟(jian)大(zhi)高(kai)效(gua)的公司Square又向业界投下一颗重磅炸弹。推出了一个叫LeakCanary的玩意儿,可以通过简单粗暴的方式来让开发者获取自己应用的内存泄露情况。而且得益于gradle强大的可配置性,可以确保只在编译 debug 版本时才会检查内存泄露,而编译 relea...转载 2020-08-18 14:48:14 · 301 阅读 · 0 评论 -
Android音频系统学习
Android 音频系统:从 AudioTrack 到 AudioFlingerhttps://blog.csdn.net/zyuanyun/article/details/60890534Linux ALSA 音频系统:逻辑设备篇https://blog.csdn.net/zyuanyun/article/details/59180272#t6Qualcomm Audio HAL 音频通路设置https://blog.csdn.net/azloong/article/det..原创 2020-08-07 15:30:14 · 1072 阅读 · 0 评论 -
Qualcomm 音频学习一
前言最近在学习高通的音频驱动,在学习了高通音频 bring up 和 Audio overview 文档后,并在网上寻找到一篇比较重要的 blog进行学习后,将这部分学习笔记记录于此。四个重要部分高通音频框架大体分为以下四个部分:音频前端(FE)音频后端(BE)DSP音频设备(Audio Device)(以下,音频前端使用 FE 代替;音频后端使用 BE 代替,音频设备使用 Device 代替)其中,一个音频前端对应着一个 PCM 设备,一个音频后端对应着一个 DAI 口;DSP转载 2020-08-07 10:44:10 · 1555 阅读 · 0 评论 -
dumpsys命令用法
http://gityuan.com/2016/05/14/dumpsys-command/ dumpsys命令功能很强大,能dump系统服务的各种状态,非常有必要熟悉该命令的用法以及含义。一、 dumpsys命令1.1 服务列表不同的Android系统版本支持的命令有所不同,可通过下面命令查看当前手机所支持的dump服务,先进入adb shell,再执行如下命令:dumpsys -l。 这些服务名或许你并看不出其调用的哪个服务,那么这时可以通过下面指令:service list。...转载 2020-08-07 10:15:46 · 792 阅读 · 0 评论 -
Audio专业名词解析
1 PCM接口针对不同的数字音频子系统,出现了几种微处理器或DSP与音频器件间用于数字转换的接口。最简单的音频接口是PCM(脉冲编码调制)接口,该接口由时钟脉冲(BCLK)、帧同步信号(FS)及接收数据(DR)和发送数据(DX)组成。在FS信号的上升沿,数据传输从MSB(Most Significant Bit)字开始,FS频率等于采样率。FS信号之后开始数据字的传输,单个的数据位按顺序进行传输,1个时钟周期传输1个数据字。发送MSB时,信号的等级首先降到最低,以避免在不同终端的接口使用不同的数据...原创 2020-08-07 10:13:43 · 1502 阅读 · 0 评论 -
Qualcomm Audio HAL 音频通路设置
1. 音频框图概述| Front End PCMs | SoC DSP | Back End DAIs | Audio devices | *************PCM0 <------------> * * <----DAI0-----> Codec Headset * *PCM1 <------------> *转载 2020-08-06 16:38:33 · 2257 阅读 · 0 评论 -
RK系列SDK -- Android HFP蓝牙通话音频处理(蓝牙音箱方案)
转自:https://blog.csdn.net/hb9312z/article/details/103345252说明:本文适用于 RK 作为蓝牙设备的蓝牙通话设计。硬件上,BT 芯片的 PCM 时钟和数据线直接连接到 RK 芯片端的一组 i2s 。软件上,需要将 BT 芯片注册成一个声卡。BT HFP 通话数据流程:Downlink:远端信号 -> 蓝牙端 -> AP -> BT SoundCard -> PCM -> SOC SoundCard -&..转载 2020-08-06 10:22:03 · 2687 阅读 · 0 评论 -
Android audio介绍
阅读目录1. 架构 2. Audio HAL 3. Native Audio 4. Java Audio开始这篇文章之前,需要先了解<Linux音频编程>回到顶部1. 架构在Android中,audio以分层的方式实现,从上到下依次为- 应用框架: 提供android.media API音频管理器: AudioManager音频采集: MediaRecoder, AudioRecord音频播放: SoundPool, MediaPlayer, AudioTr转载 2020-08-04 15:30:25 · 3399 阅读 · 0 评论 -
linux驱动由浅入深系列:tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)音频子系统之一【转】
本文转载自:http://blog.csdn.net/radianceblau/article/details/64125411目前linux中主流的音频体系结构是ALSA(Advanced Linux Sound Architecture),ALSA在内核驱动层提供了alsa-driver,在应用层提供了alsa-lib,应用程序只需要调用alsa-lib提供的API就可以完成对底层硬件的操作。说的这么好,但是Android中没有使用标准的ALSA,而是一个ALSA的简化版叫做tinyalsa。And转载 2020-08-03 20:22:10 · 742 阅读 · 0 评论 -
蓝牙电话(hfp)与Android audio hal的关联
通话的时候,需要打开音频通路,音频设备(上下行都要)我们从这里开始:packages/apps/Bluetooth/src/com/android/bluetooth/hfpclient // in Connected state private void processAudioEvent(int state, BluetoothDevice device) { ... switch (state) { ... ...转载 2020-08-03 20:10:01 · 2054 阅读 · 2 评论 -
android电池 framework层
1.电池电池涉及的功能有:BatteryStatus、BatteryHealth、BatteryPresent、BatteryLevel、PlugType、BatteryVoltage、BatteryTemperature、BatteryTechnology等,它是种从下而上的表现方式,即底层电池变化后通过uevent事件向上传递电池的当前状态。2. 硬件调用文件:frameworks转载 2013-12-12 16:11:54 · 1985 阅读 · 0 评论 -
Android Uevent 分析,从kernel到framework
Uevent是内核通知android有状态变化的一种方法,比如USB线插入、拔出,电池电量变化等等。其本质是内核发送(可以通过socket)一个字符串,应用层(android)接收并解释该字符串,获取相应信息。一、Kernel侧:UEVENT的发起在Kernel端,主要是通过函数int kobject_uevent_env(struct kobject *kobj, enum kobj转载 2013-12-12 16:13:50 · 864 阅读 · 0 评论 -
android4.0 及以上 版本 wifi 和 蓝牙不显示 原因
android4.0 及以上 版本里 ,如果在settings下看不到wifi和bluetooth两个菜单选项,这是因为在setting里,对系统是否有特定的模块加上了判断,如果没有就不显示。android4.0的模块判断函数:getPackageManager().hasSystemFeature(String string).通过该函数判断系统是否有特定的模块功能。 例如判断是否有 w原创 2014-01-07 16:16:07 · 978 阅读 · 0 评论 -
Android Prelink实现的源码分析
转自:http://blog.csdn.net/xieyan0811/article/details/59595391. 原理简介1) PrelinkPrelink即预链接技术是利用事先链接以代替运行时链接的技术,以加快共享库的加载速度,它不仅能加快程序启动时间,还可以减少部分内存开销(它能使KDE的启动时间减少50%)。每次程序执行时,进行的链接动作都转载 2014-01-07 11:27:04 · 636 阅读 · 0 评论 -
Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
一、Android Bluetooth现状在android官网可以了解到android4.2新增了部分新功能,但是对于BT熟悉的人或许开始头疼了,那就是Android4.2引入了一个新的蓝牙协议栈针。谷歌和Broadcom之间的合作,开发新的蓝牙协议栈,取代了基于堆栈的Bluez。因此市场上出现了老设备的兼容问题,很多蓝牙设备在android4.2手机上不能使用。New转载 2014-01-10 16:33:54 · 2732 阅读 · 0 评论 -
android bluetooth 移植相关注意事项
bluedroid的通用架构框图:由上图可知,bluedroid包含如下的核心组件:Bluetooth core stack libraryHCI libraryVendor Specific HCI libraryUART, RFKILL,TUN/TAP and UHID device dri转载 2014-01-10 16:32:09 · 3023 阅读 · 0 评论