Android
晚安08
既然不能把爱好变成职业,那就把职业变成爱好
展开
-
Android版本号和版本名对应关系
Android版本号和版本名对应关系原创 2022-09-27 23:41:11 · 796 阅读 · 0 评论 -
Failed to stop the muxer
这是调用 mediaMuxer.addTrack 的时机不对,应该在MediaCodec调用dequeueOutputBuffer返回MediaCodec.INFO_OUTPUT_FORMAT_CHANGED时设置。使用MediaProjection + MediaCodec + MediaMuxer 录制手机屏幕保存到本地mp4文件。停止录制时调用 meidiaMuxer.stop() 报错:Failed to stop the muxer。原创 2022-09-27 11:35:35 · 778 阅读 · 0 评论 -
Android 各种文件路径、Environment
Android 各种文件路径、Environment原创 2022-09-25 00:27:55 · 678 阅读 · 0 评论 -
Android 开发JNI异常定位
Android 开发JNI异常定位原创 2022-06-19 22:29:56 · 470 阅读 · 0 评论 -
Android 10以上出现的 android Permission denied 读写权限问题
Android 10以上出现的 android Permission denied 读写权限问题原创 2022-06-19 22:24:08 · 2894 阅读 · 4 评论 -
FFMPEG坑
/Users/kbq/workspace/android/2022/myffmpeg/mediaplayer/src/main/cpp/include/libavutil/common.h:30:2: error: missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS将/libavutil/common.h中#if defined(__cplusplus) && !defined(__STDC_CONSTANT原创 2022-06-16 01:02:18 · 397 阅读 · 0 评论 -
关于Android arm64-v8a、armeabi-v7a、armeabi、x86等CPU下的so文件兼容问题
先介绍几个专业词:webARM :是嵌入式中的一种架构,全称为Advanced RISC Machine,能够理解为ARM处理器。微信ABI(Application Binary Interface):应用程序二进制接口 描述了应用程序和操做系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。架构ABI和CPU关系:大部分cpu都支持多于一种的ABI。当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。appABI目录(横向)和cpu(纵向)原创 2022-05-01 11:33:16 · 11318 阅读 · 8 评论 -
Mac OS 环境下编译ffmpeg生成so库文件
编译环境:Mac OS monterey (12.3.1) android-ndk (21.0.6113669) ffmpeg-4.2.2 下载ffmpeg:wget https://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2或者到官方git上下载注意:ndk版本我使用的是21.0.6113669,试过24.0.8215888的版本,缺少某些文件,b...原创 2022-04-30 23:53:29 · 910 阅读 · 0 评论 -
Android 多渠道打包
Android 多渠道打包看这一篇就够了本文三个流程一、多渠道配置1、多渠道配置2、不同渠道不同签名配置3、不同渠道不同资源文件配置4、不同渠道不同依赖配置二、注意事项三、打包1、命令行打包2、IDE 打包多渠道配置(2 种方式)1、可写在主模块(app)的 build.gradle 下android { compileSdkVersion 29 buildToolsVersion "29.0.3" defaultConfi转载 2022-01-27 14:00:19 · 2797 阅读 · 0 评论 -
安卓依赖库(好用大集合)
沉浸式状态栏:https://github.com/laobie/StatusBarUtil似乎不更新了? 图片加载框架Glide:https://github.com/bumptech/glide 图片加载框架Coil:https://github.com/coil-kt/coil 基于Kotlin协程,比glide更轻量: 工具类:GitHub - Blankj/AndroidUtilCode: Android developers should collect the followin...原创 2021-12-31 20:49:42 · 2435 阅读 · 0 评论 -
Android 全屏弹窗
// 构建Dialogval dialog = Dialog(context)val contentView: View = LayoutInflater.from(view.context).inflate(R.layout.dialog_wish_product, null)// 获取自定义View里的控件并传值val tvWishValue: TextView = contentView.findViewById(R.id.tv_wish_value)tvWishValue.tex.原创 2021-12-09 14:46:41 · 3121 阅读 · 0 评论 -
Android TextView局部文字颜色不一样,并实现点击事件
//设置文字变色并可点击val tip = "您的心愿商品需要1090个心愿值,需要109 个朋友帮忙助愿, 您也可以切换到心愿大厅去寻找简单容易获得的商品"val textClickable = "切换到心愿大厅"val tvTip: TextView = contentView.findViewById(R.id.tv_tip)val ssb = SpannableStringBuilder()ssb.append(tip)val clickableSpan: ClickableSpan .原创 2021-12-09 14:41:41 · 961 阅读 · 0 评论 -
聚合广告SDK文档(Kotlin)
聚合多家广告提供商,后台选择广告展示,智能选择佣金高的广告进行展示原创 2021-12-02 10:32:34 · 11045 阅读 · 0 评论 -
Android Gradle Plugin 版本的默认 NDK 版本
AGP 版本的默认 NDK 版本在发布之前,每个 AGP 版本都使用当时最新的稳定 NDK 版本进行了全面测试。对于AGP 3.6及更高版本,该版本NDK将被用来建立自己的项目,如果你不指定在NDK版本build.gradle文件。默认 NDK 版本记录在AGP 发行说明中。当前默认的 NDK 版本如下表所示: Android Studio/Gradle 插件版本 7.0 4.2 4.1 4.0 3.6 3.5 3.4 为 AG..原创 2021-11-27 22:02:38 · 2945 阅读 · 0 评论 -
Android Gradle Plugin 和 Gradle版本对应关系
当您更新 Android Studio 时,您可能会收到一个提示,要求您同时将 Gradle 更新到最新的可用版本。您可以选择接受更新或根据项目的构建要求手动指定版本。下表列出了每个版本的 Android Gradle 插件所需的 Gradle 版本。为了获得最佳性能,您应该使用 Gradle 和插件的最新版本。插件版本 所需的 Gradle 版本 1.0.0 - 1.1.3 2.2.1 - 2.3 1.2.0 - 1.3.1 2.2.1 - 2.9 1.5.0原创 2021-11-12 14:59:27 · 2308 阅读 · 0 评论 -
Android 内存优化
前言内存问题是一个普遍问题,但是却普遍缺少关注度,具体有以下几个原因:1.内存问题相对比较隐蔽,表现并不明显。2.同时android使用Jvm语言开发,垃圾回收是自动的,所以一般没有特别关注。3.内存问题难以定位,出现问题的地方往往只是表现的地方,真正的原因难以收集。内存优化的内容其实非常多而复杂,我们可以尝试从以下思路去了解:1.要了解内存问题,我们首先要了解为什么要做内存优化?2.同时需要了解一些内存优化的背景知识,如垃圾回收机制。3.我们需要了解一些转载 2021-10-30 14:01:51 · 346 阅读 · 0 评论 -
Android面试题
Android四大组件及使用。Activity :应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。BroadcastReceive广播接收器:应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。通知可以用很多种方式来吸引用户原创 2021-10-21 22:33:03 · 1435 阅读 · 2 评论