![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 61
zx_huang
这个作者很懒,什么都没留下…
展开
-
Android 8.0 getSystemService流程
当我们需要添加一个悬浮窗口时,都会先通过getSystemService去获取WindowManager,再通过WindowManager的addView、updateViewLayout、removeView方法来实现,那么getSystemService是怎么实现的呢,它具体返回的是哪个类?1.我们通常用如下方式来获取WindowManager:Context.getSystemService(Context.WINDOW_SERVICE)2.Android studio查看源码,跳转到C原创 2021-05-24 11:27:22 · 521 阅读 · 0 评论 -
Android 声音录制音量调节
最近做一个录屏项目,录制的系统声音音量偏小,需要调大录音的方式采用了AudioRecord,可以拿到音频原始数据,于是想到从音频数据下手之前没有接触过类似的知识,对这个东西也不懂,参考网上做法,需要使用到公式:A1 = A2 * pow(10, db/20)A1 和 A2 是两个声音的振幅,A2为原始音频振幅,A1为根据所指定db大小计算出来的调节音量后的音频振幅频率与振幅声音有两个基本的物理属性:频率与振幅。声音的振幅就是音量,频率的高低就是指音调,频率用赫兹(Hz)作单位。原创 2020-05-11 11:18:26 · 4851 阅读 · 0 评论 -
Android MediaRecorder的stop流程
最近在使用MediaRecorder实现录屏功能,因为平台是外接USB麦克风或者带麦克风摄像头之类的,巨坑,好多坑。本来是一个小应用,结果问题一个接一个跟踪MediaRecorder流程的原因是,录屏录制一个多小时后,停不下来了,卡住了ANR了!根据log分析,可以定位到异常位置异常的地方是在framework/av/media/libstagefright/MediaCodecSou...原创 2020-04-29 10:30:36 · 1489 阅读 · 2 评论 -
Android MediaRecorder的prepare流程
最近在使用MediaRecord实现录屏功能,因为平台没有自带麦克风,是外接USB,遇到可不少坑。跟踪这个流程原因是,有其他app已经在使用USB麦克风了,我再开启自己录屏的时候ANR,ANR的原因是MediaRecorder卡在prepare。MediaRecorder的prepare流程如下:1.\Android\framework\av\media\libmedia\Media...原创 2020-04-29 10:16:24 · 1265 阅读 · 0 评论 -
Android 屏幕录制时去除悬浮窗
最近在用Android8.0开发一个屏幕录制的功能,要求录制的视频不能有录屏的控制悬浮窗。录屏方案使用的是MediaRecorder、MediaProjection、VirtualDisplay。Android支持多个屏幕:主显、外显、虚显,虚显就是VirtualDisplay。VirtualDisplay的使用场景很多,比如录屏,WED显示等。其作用就是抓取屏幕上显示的内容。录屏...原创 2020-03-06 13:44:57 · 5502 阅读 · 5 评论 -
Android 网络连接判断以及IP获取
网路连接判断参考:https://www.jianshu.com/p/32c232d83fb2import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.util.Log;import java.io.Buf...原创 2020-02-19 11:14:04 · 606 阅读 · 0 评论 -
Android8.0 禁止系统和预装之外的应用弹出通知
最近在开发电子白板项目,系统用的是Android8.0最近一个需求是:系统自带的应用和预装的应用可以弹出通知,其他应用不能弹出8.0的通知使用可以查看Android8.0中通知无法正常使用问题要弹出通知,会使用到NotificationManager的notify方法那就来看NotificationManager的代码吧,NotificationManager的代码位置是在(fr...原创 2020-01-12 16:07:47 · 5414 阅读 · 0 评论 -
Android8.0 SystemUI的Recents(多任务)全部清除按钮修改
需求最近安卓电视开发中有这样的需求:1.全部清空移至多任务列表左侧2.加一个垃圾桶图标3.手势划出app时,全部清空的图标会暂时隐藏如下图:需求明确了,那就开始干活吧干活SystemUI的源码实在Android/frameworks/base/packages/SystemUI/1.首先要先找到全部清除按钮:xml:SystemUI/res/layo...原创 2020-01-10 16:35:08 · 3530 阅读 · 3 评论 -
Java使用aapt解析安卓apk信息(Windows、Linux)
最近在做spring boot的项目应用更新管理模块,上传android apk并自动解析apk信息。我使用的方法有两种:1.种用axmlprinter2.jar包解析,读取AndroidManifest文件相关信息。2.使用aapt(Android Asset Packaging Tool),Android资源打包工具。使用jar解析时有些apk读取不出来,因此推荐使用第二种方法...原创 2019-02-26 13:27:20 · 2160 阅读 · 0 评论 -
Android 系统签名制作
转载自:http://blog.csdn.net/qinxue24/article/details/72829234在Linux系统下。1、Android 源码目录build\target\product\security 取platform.pk8 platform.x509.pem放到一个目录下2、生成shared.priv.pem文件:转载 2018-01-22 10:45:49 · 1047 阅读 · 0 评论 -
Android 接收系统灭屏广播延时问题
接收系统灭屏广播延时问题问题描述: 屏幕灭屏与亮屏时会分别发送两个广播SCREEN_ON和SCREEN_OFF,这两个action通过代码的形式注册广播接收器能被监听到。 笔者在视频项目开发过程中就有用到,监听SCREEN_OFF广播消息,实现灭屏暂停播放功能。但是在使用过程中发现,该广播存在延时的情况,严重的时候延时了两三秒之久,这就引起一个问题,屏幕熄灭了,视频原创 2018-01-05 15:40:50 · 2598 阅读 · 1 评论 -
Android 混淆
前言混淆是上线前挺重要的一个环节。android使用的ProGuard,可以起到压缩,混淆,预检,优化的作用。但是很多童鞋还没有掌握正确的写混淆文件的姿势。我希望搞个模板化的东西,让大家轻松搞定混淆。五步搞定1打开项目中的proguard-rules.pro,将下面的代码复制进去。我的思路是将混淆分为2个主要部分。定制化区域:这里边的内容是我们主要需要补充的部分,大转载 2018-01-27 13:51:26 · 211 阅读 · 0 评论 -
Android 8.0 悬浮窗变动与用法
Android 8.0 悬浮窗变动问题描述:项目开发中有使用到了悬浮窗,近期在往Android O 系统porting,发现悬浮窗不能正常使用,运行出错:android.view.WindowManager$BadTokenException: Unable to add window — token android.os.BinderProxy@447a6748 is no...原创 2018-01-05 17:11:08 · 22138 阅读 · 4 评论 -
Android 获取手机分辨率
方法 一DisplayMetrics dm=new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);String s="屏幕的分辨率为:"+dm.widthPixels+"*"+dm.heightPixels;这种方法获取的屏幕高度不包含导航栏高度例如,在一部分辨率为1280x720带虚拟原创 2018-01-22 14:35:01 · 743 阅读 · 0 评论 -
Android Handler计时的优化
Android Handler计时的优化 handler计时方式,我们通常是在主线程中通过handler.postDealyed(……,200),并在onHandleMessage中继续post消息,这样就实现了每隔200ms进行一次消息循环。 这种方式是不准确的,有误差,误差的原因在于在你收到消息,到你重新发出handler.postDealyed的时间,并不是瞬间完成的,这里面有很...原创 2018-02-23 11:03:52 · 1207 阅读 · 0 评论 -
Android BroadcastReceiver注意事项
广播有三种类型:普通广播和有序广播,还有另外一种不怎么常用的粘性广播。普通广播:普通广播是完全异步的,可以在同一时刻(逻辑上)被所有接收者接收到,消息传递的效率比较高,并且无法中断广播的传播。有序广播:发送有序广播后,广播接收者将按预先声明的优先级依次接收Broadcast。优先级高的优先接收到广播,而在其onReceiver()执行过程中,广播不会传播到下一个接收者,此时当前的广播接收者可以终止...原创 2018-03-02 15:01:22 · 338 阅读 · 0 评论 -
Android studio:not get resource
Error:A problem occurred configuring project ':app'.Could not resolve all files for configuration ':app:classpath'.Could not download gradle-retrolambda.jar (me.tatarka:gradle-retrolambda:3.7.0)Cou...转载 2018-05-13 17:21:37 · 2018 阅读 · 1 评论 -
Android RecyclerView 莫名自动滚动
RecyclerView 焦点如果发现你的RecyclerView 在滑动的过程中经常跳屏(暂且称它为跳屏,现象是总是跳到某个item),那么你可能遇到RecyclerView与子item某控件的焦点冲突问题。android:descendantFocusability="blocksDescendants" 父布局里,加这句android:overScrollMode="never" ...原创 2018-05-29 15:20:29 · 8558 阅读 · 7 评论 -
Android8.0中通知无法正常使用问题
Android8.0中通知无法正常使用问题问题描述Android O做很多修改,如悬浮窗、通知、广播、WiFi、蓝牙等。近期我在往Android8.0 porting项目过程中就遇到了无法正常发送通知的问题问题分析当APP往通知栏发送通知时显示不出来,Toast显示...Failed topost notification on channel "null"......原创 2018-01-05 11:47:42 · 10219 阅读 · 0 评论