Android
文章平均质量分 51
雨声不在
有问题请在相关博客下评论,或者给我邮件 hello@yeshen.org。:)
展开
-
广告接入相关
从开发者看广告接入相关的知识原创 2024-08-25 18:24:50 · 1288 阅读 · 0 评论 -
simpleperf的使用
是一个记录在使用 CPU 性能分析器检查 CPU 活动 的命令行工具,个人理解使用的场景主要是在分析卡顿原因,定位指令、确定某个范围的函数。原创 2024-07-28 12:34:26 · 297 阅读 · 0 评论 -
【android】SDK兼容低版本Lambda的一次尝试
与android jdk8 lambda搏斗的一篇文章...原创 2024-02-24 18:30:26 · 948 阅读 · 0 评论 -
android 15
android 15更新原创 2024-02-20 09:17:34 · 688 阅读 · 0 评论 -
NDK toolchains报错
ndk-bundle/toolchains 下增加多两个空文件夹即可。Gradle 3.0.1 需要这个目录…原创 2024-02-05 10:26:14 · 654 阅读 · 0 评论 -
使用jdk1.8报错
使用jdk1.8报错原创 2024-01-26 10:17:18 · 550 阅读 · 0 评论 -
opencv2.4 android编译
android nonfree opencv原创 2023-12-02 13:06:11 · 536 阅读 · 0 评论 -
菜单中的类似iOS中开关的样式
菜单中的类似iOS中开关的样式原创 2023-08-19 11:17:33 · 127 阅读 · 0 评论 -
Android aar混淆一坑
背景见上篇博客,我合并了多个aar,集成成一个对外输出了。问题出在接入方混淆前后,部分功能有异常。原创 2023-06-10 15:50:26 · 403 阅读 · 0 评论 -
多AAR合并之二Merge multiple jar/aar maven url into one
How to merge multiple jar/aar maven url into single jar/aar.原创 2023-06-03 10:19:48 · 388 阅读 · 0 评论 -
NativeActivity
NativeActivity原创 2022-12-22 10:57:45 · 245 阅读 · 0 评论 -
webrtc部分手机黑屏的原因排查
黑屏原创 2022-11-25 13:04:49 · 1433 阅读 · 1 评论 -
webrtc打开摄像头崩溃处理
webrtc打开摄像头崩溃处理原创 2022-11-12 14:27:09 · 773 阅读 · 0 评论 -
判断编解码是不是软编/解的方法
判断编解码是不是软编/解的方法原创 2022-11-09 18:37:39 · 903 阅读 · 0 评论 -
华为荣耀7webrtc HardwareVideoEncoder崩溃问题
[HardwareVideoEncoder, java.lang.IllegalArgumentException: Expected destination buffer capacity to be at least 1382400 was 983040]原创 2022-11-07 19:27:19 · 565 阅读 · 0 评论 -
jenkins Android签名设置
用了Android Signing Plugin签名,配了.jks证书会报错怎么处理原创 2022-10-09 09:32:52 · 837 阅读 · 0 评论 -
修改aar中特定代码的方法
修改aar中特定代码的方法原创 2022-06-23 21:23:34 · 556 阅读 · 0 评论 -
Gitlab部署maven的方法
最近发现gitlab提供了maven的功能,研究了下怎么用,下面是摸索之后得出的方法原创 2022-06-04 14:32:35 · 1618 阅读 · 3 评论 -
一些常用的gradle脚本
/app/build.gradlegitCommitHash gitUserName把项目中当前的hash值保存进代码中、方便检查。在debug版本中用当前提交代码的用户名作为版本号,方便区分崩溃信息。def gitCommitHash = 'git rev-parse --verify --short HEAD'.execute().text.trim()def gitUserName = 'git config user.name'.execute().text.trim()androi原创 2021-12-11 14:35:06 · 2230 阅读 · 0 评论 -
webrtc华为手机编码异常问题
背景是有个华为手机,竖屏的时候,报错 Dropped frame, encoder queue full找了一下原因,直接原因是数据喂给编码器之后,没有数据输出,所以outputBuilders一直是满的。但是手机放横屏的时候,能正常编码。我自己弄了个点对点的webrtc服务,横屏、竖屏都能正常编码。先说结论吧,有几个方法:方法一检测到这种情况,回退到软编,也就这里修改为:return VideoCodecStatus.FALLBACK_SOFTWARE;方法二offer中增加 a=e原创 2021-10-13 16:38:21 · 1912 阅读 · 2 评论 -
卸载系统应用的方法
有些系统应用我确实是不需要看着很碍眼,比如那些什么语音助手,30分的作品(满分一百),时不时跳出来,就很影响手机体验。本文提供了一种删除这些不及格功能的方法。看jk的朋友圈发了一个方法,国庆给老妈买了手机,所以试了一下,是可以的。但是好像有点副作用,有些系统应用确实承担了一些功能(比如小米系统就把应用管理移出到其他系统应用去了,我删掉之后,就打开到应用管理那里,会崩溃)正文# 手机上打开,找到要删除的应用包名adb shell dumpsys activity | grep mCurren.原创 2021-10-08 09:59:58 · 1905 阅读 · 0 评论 -
MSA 39285EFA.dex崩溃
正式包会崩溃,和打包没关系,其他设备打包也会崩溃:同意隐私协议前不会崩溃,同意后就崩溃了(同意后会去获取oaid)特定的机器(主要集中在android5、6 华为手机),打开一定会崩溃,崩溃堆栈如下,持续崩溃。Thread 64 (crashed)0 39285EFA.dex + 0x1f716r0 = 0x00000000 r1 = 0x00000001 r2 = 0x00000001 r3 = 0x1301d400r4 = 0x712d6f8c r5 = 0x00000001 r6 = .原创 2021-09-07 09:59:44 · 623 阅读 · 0 评论 -
oppo手机上的系统应用shelper杀应用导致应用疑似奔溃
观察看了下日志,是如下日志09-06 17:56:57.058 1809 1891 V WindowManager: adjustNotShowWallpaperByOppo: false09-06 17:56:57.628 1809 3814 I ActivityManager: Force stopping org.yeshen.test appid=10242 user=0: from pid 6951只有系统应用能正常起来,其他应用都会被杀。pid 6951 是这个应用 c原创 2021-09-06 18:19:16 · 2043 阅读 · 0 评论 -
一次RadialGradient导致的崩溃的原因定位
背景是我们的应用在android5.0的机器上会崩溃崩溃堆栈如下:java.lang.IllegalArgumentException: radius must be > 0 at android.graphics.RadialGradient.<init>(RadialGradient.java:57) at android.graphics.drawable.GradientDrawable.ensureValidRect(GradientDrawable.java:938)原创 2021-07-24 22:08:27 · 391 阅读 · 1 评论 -
如何dump webrtc视频
参考:https://webrtchacks.com/video_replay/before startSimply start the browser with the command-line flag –disable-webrtc-encryption and you should see warning should be displayed at the top of your window that you’re using an unsupported command-line fl.原创 2021-07-12 14:36:32 · 427 阅读 · 0 评论 -
vscode 修改显示文件顺序
code-> perferences->settingssearch->explorer.sortOrderExplorer: Sort OrderControls sorting order of files and folders in the explorer.- Default- Mixed- Files first- Type- Modified原创 2021-07-09 09:37:45 · 2780 阅读 · 0 评论 -
保存图片到图库的方法
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (ActivityCompat.checkSelfPermission(activity,WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){ Glide.with(activity).asBitmap().load(posterUrl).into(new CustomTarget<原创 2021-07-08 17:38:57 · 496 阅读 · 0 评论 -
JobService上关于jobfinish导致的概率性崩溃 的原因以及处理方法
java.lang.RuntimeException: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.android.server.job.controllers.JobStatus.getUid()' on a null object reference at android.app.job.JobService$JobHandler.handleMessage(JobService.java:139)原创 2021-07-07 09:42:17 · 513 阅读 · 0 评论 -
MediaCodec对超分的支持
Q:mediacode解码出来的数据的是在GPU上还是在cpu上?A:https://source.android.com/devices/graphics/arch-bq-gralloc结论应该是在RAM上,Gralloc内存分配器会分配内存给CPU、GPU。在使用过程中,传输内存句柄。Q:使用的格式是什么?A:YUV420/NV12 都有Q:Android客户端能提供的数据是什么?A:ByteBuffer buffer = codec.getOutputBuffers()https://d原创 2021-07-05 15:51:24 · 336 阅读 · 1 评论 -
基于Looper.getMainLooper().setMessageLogging的ANR监控方法
// watch all runnable which post in main threadclass MainLooperWatcher : Printer { private val TAG = "MainLooperWatcher" private var mLastMillis: Long = 0 private var mLastSeconds: Long = 0 private var mTimesPerSeconds: Long = 0 fun m原创 2021-06-22 12:53:37 · 1452 阅读 · 0 评论 -
android 获取当前进程的logcat日志
java.lang.Process process = null;InputStream inputStream = null;InputStreamReader inputStreamReader = null;BufferedReader bufferedReader = null;try { process = Runtime.getRuntime().exec("logcat -t 500 --pid=" + Process.myPid()); inputStream = p原创 2021-06-22 12:45:26 · 1174 阅读 · 0 评论 -
android setTransparentRegion的方法
final View view = getWindow().getDecorView();try { Method mm = view.getClass().getMethod("getViewRootImpl"); Object viewRootImpl = mm.invoke(view); for (Method m : viewRootImpl.getClass().getMethods()) { Log.e("methods", m.toString());原创 2021-06-04 10:12:43 · 334 阅读 · 1 评论 -
ANR的排查方法
谷歌的文档ANR 已经解释的比较清楚,这篇文章一半是把我知道的信息整理出来,另外一半是总结我处理ANR的一些经验。:)出现场景:出现以下任何情况时,系统都会针对您的应用触发 ANR:当您的 Activity 位于前台时,您的应用在 5 秒钟内未响应输入事件或 BroadcastReceiver(如按键或屏幕轻触事件)。虽然前台没有 Activity,但您的 BroadcastReceiver 用了相当长的时间仍未执行完毕。优化的标准:当应用出现以下情况时,Android Vitals 会认为原创 2021-05-23 10:49:26 · 1628 阅读 · 1 评论 -
一个webview崩溃的解决办法
一个webview崩溃的解决办法最近有个机器(魅蓝E2(GIH-PHO-1879)(webview版本:51.0.2704.108))打开浏览器放着就会崩溃,抓堆栈出来。是这样的:Operating system: Android 0.0.0 Linux 3.18.31+ #1 SMP PREEMPT Mon Mar 5 16:17:48 CST 2018 armv8lCPU: arm ARMv1 ARM part(0x4100d030) features原创 2021-03-25 10:00:00 · 2813 阅读 · 1 评论 -
webview加载报错
最近有个同事问我,他的页面有一个请求失败了,然后整个H5就没办法加载了。分享一段代码,做个记录吧。可以这样处理priavte final class TestWebviewClient extends WebviewClient{ @Override public boolean shouldOverrideUrlLoading(WebView webview, String url) { Lg.i(TAG, "shouldOverrideUrlLoading", ur原创 2021-03-03 20:31:09 · 532 阅读 · 1 评论 -
Gradle4.0编译错误处理
最近项目升级了一下gradle,然后经常使用的./gradew assembleDebug 就报错了,报错信息是这样的> Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies w原创 2021-03-03 19:54:00 · 3994 阅读 · 6 评论 -
INSTALL_PARSE_FAILED_NO_CERTIFICATES 问题
INSTALL_PARSE_FAILED_NO_CERTIFICATES 问题背景是我们自己搞了一套打渠道包的规则,最近更新到Gradle4.0.1之后,打包成功之后,在Android P的手机上安装出现问题,报错是:adb: failed to install Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl957487087.tmp/base.apk u原创 2020-12-05 11:02:38 · 5614 阅读 · 0 评论 -
一个webview loadUrl的兼容性问题
也是留个记录吧。最近遇到一个webview loadUrl的兼容性问题,问题的表现大概是:public final void load(String url) { mContentView.loadUrl(url);}public final void loadHtml(String htmlString) { mContentView.loadDataWithBaseURL(Enhance.getServer().getH5(), htmlString,原创 2020-10-17 16:39:38 · 447 阅读 · 0 评论 -
一种排查webview的兼容性问题的方法
背景是这样的,我们的应用内嵌了webview,测试同学配测试连接的时候,在某部手机上,应用闪退了。我就用了系统的webview,没做什么特殊处理,应该是网页的问题,但是具体是什么问题呢?上午刚好有一点时间,所以我做了一下问题定位和排查,我是这样排查的:step 1 继承 WebViewClient,查看有哪些HTTP请求,把一些可以的直接返回空// setWebViewClient(new YeshenWebViewClient());private final class YeshenWebVi原创 2020-10-10 12:51:05 · 1086 阅读 · 1 评论 -
TV提供主屏幕横幅
<application ... android:banner="@drawable/banner" > ...</application>横幅应该是 xhdpi 资源,尺寸为 320 x 180 像素。原创 2020-08-31 21:16:15 · 323 阅读 · 0 评论