![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android开发
文章平均质量分 84
ShenYong812
低调的Androider
展开
-
【音视频笔记】Mediacodec+Muxer生成mp4,浏览器无法播放问题处理
用AudioRecord + MediaCodec + MediaMuxer生成MP4,用PC浏览器无法播放,但是其他播放器应用能播放。用ffprobe命令检查视频文件,有"[aac @ 0x7ffa3681f800] Input buffer exhausted before END"。记录一下我是如何解决这个问题的。原创 2023-09-21 10:46:36 · 1003 阅读 · 0 评论 -
记一次特别的Activity生命周期问题处理
在Android开发中,Activity跳转的生命周期,我们都再熟悉不过了,但是有一些特别的应用场景,生命周期方法却会出现一些我们意料外的调用顺序。正常的Activity跳转生命周期从 main 创建,到启动新的页面second,正常的生命周期是这样的:main onCreate // --------main onStart // |main onResume // |main onPause // |second onCreate // | mai原创 2021-07-27 15:46:48 · 359 阅读 · 0 评论 -
回顾华为荣耀6手机刷机相关
这篇博客记录了我的远古手机——华为荣耀6(H60-L01)的root刷机操作。原创 2021-04-23 15:16:16 · 1369 阅读 · 0 评论 -
基于Docker+Jenkins的Android项目CI/CD流程搭建
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins通过Docker部署运行时,Jenkins的容器环境不包含构建Android应用所需的工具(如Android SDK等)。但Jenkins支持在流水线的单个 Stage或整个流水线中使用Docker镜像作为执行环境,方便用户管理构建和测试环境。本文档介绍在Docker运行Jenkins的环境下,用Jenkins构建Android项目的两种方式——Freestyle project构建任务和Pipe原创 2021-04-14 13:01:32 · 1968 阅读 · 0 评论 -
全面的 iPerf3 Android平台移植编译、运行过程记录
iPerf是什么?无需我多言,官网这条醒目的宣传语,已表达的很简洁、准确,甚至透露着一丝霸气:iPerf——支持TCP、UDP和SCTP的终极测速工具!iPerf支持的平台非常全面,包括:Windows、Android、iOS、macOS 和 Linux 的多个发行版本。但遗憾的是,Android 版本提供的是开发好的、包含 iPerf 工具的Android应用。不像其他平台,提供了单独的 iPerf 可执行程序。作者用这篇博客记录了完整的 iPerf Android 平台编译移植过程。原创 2020-11-13 14:17:53 · 5259 阅读 · 4 评论 -
NDK 中的 Unified Headers 记录
ndk-r14 release note 关于 Unified Headers 的说明文档原文:Unified headers: This release introduces platform headers that are synchronized and kept always up-to-date and accurate with the Android platform. Header-only bug fixes now affect all API levels. The intr翻译 2020-11-08 11:28:29 · 220 阅读 · 0 评论 -
用 Kotlin + buildSrc 更好地管理 gradle 依赖
本文主要对以下的原始及翻译博文做一点批注记录:原始博客:Kotlin + buildSrc for Better Gradle Dependency Management翻译博客:[译]Kotlin + buildSrc:更好的管理Gadle依赖总结一下:用 buildSrc 管理依赖的好处就是,支持点击跳转和IDE的输入提示。缺点就是,和使用 ext 方式一样,不支持 Android Studio 的依赖库新版本提示了。...原创 2020-07-08 14:05:01 · 691 阅读 · 0 评论 -
Activity启动流程分析
源代码版本:android-28(Android 9.0)当我们通过startActivity(Intent intent)启动一个Activity时,最后调用了Activity中的一个startActivityForResult方法:Activity.java:public void startActivityForResult(@RequiresPermission Intent int...原创 2020-05-27 16:45:09 · 408 阅读 · 0 评论 -
Java 虚拟机笔记
JVM 运行时数据分区根据 Java 虚拟机规范 Run-Time Data Areas 章节的描述,Java 虚拟机的运行时数据划分如下:程序计数器/pc寄存器-PC(program counter) Register线程私有。 程序计数器包含线程当前正在执行的Java虚拟机指令的地址。 如果线程当前正在执行的方法是本地方法,则Java虚拟机的pc寄存器的值未定义。Java 虚...原创 2020-03-28 23:07:56 · 189 阅读 · 0 评论 -
Android用MediaCodec将相机预览帧编码成MP4视频
最近项目中,有一个在扫码同时录视频的需求。扫码框架是通过摄像头onPreviewFrame方法获取预览帧数据然后解码二维码,要在不改变扫码的整体框架条件下完成录视频,自然想到了将每一帧预览图像依次编码成视频的做法(不涉及音频)。一通开发搞下来,感觉还是有很多值得学习记录的地方,遂有这篇博客。原创 2020-03-17 17:09:57 · 4505 阅读 · 7 评论 -
Android手机投屏初探
从事Android开发,应该或多或少都遇到过要将手机屏幕同步到电脑上的需求,例如做各种会议演示等。通常我们都借助一些稳定性和口碑不错的第三方软件来实现投屏,比如我就长期使用TotalControl,当然TotalControl已经是非常成熟的软件了,功能也很丰富,投屏只能算它众多功能中的一个。我们抛开其他功能不谈,如果只需要实现手机屏幕能实时同步到电脑上播放,该怎么做呢。主要思路有两步:录制...原创 2020-03-17 17:31:27 · 2957 阅读 · 3 评论 -
事件在Android Framework层的完整流程
在MessageQueue中,有两个重要的方法:一个是enqueueMessage,负责将消息加入队列;一个是next,负责从消息队列中取出一个待处理的消息。// android.os.MessageQueueMessageQueue { boolean enqueueMessage(Message msg, long when) { // ... } Message next(...原创 2020-03-13 00:10:26 · 1493 阅读 · 0 评论 -
Android 禁止状态栏下拉,纯应用层方法,不修改framework
禁止 Android 的状态栏(Status bar)下拉,是一个常见的定制需求,通常是通过修改系统源码实现。如果不具备修改系统源码的条件,有没有纯应用层的替代方案呢?有!但有局限。这个方案参考了 Stack Overflow 上的一个问答:How to disable status bar click and pull down in Android?思路就是:通过 WindowMana...原创 2020-01-03 14:31:19 · 5361 阅读 · 0 评论 -
Android 自动打印方案——PrintHand
PrintHand 提供移动设备打印一站式解决方案。支持的平台Android、iOS/MacOS、Windows、Chrome、Blackberry。开发集成文档PrintHand For Developers原创 2019-09-11 18:35:19 · 5267 阅读 · 0 评论 -
用Android Studio 代码模板快速在JNI中添加Android log支持
在涉及C/C++开发的过程中,我们往往也和常规Android开发一样,习惯于通过log输出来观察和调试程序。当我们需要在native代码(C/C++)中打印log时,要怎么做呢?IDE特性在当前比较新的Android Studio版本上(笔者以Android Studio 3.2 为例),当新建工程时,如果勾选上C/C++代码支持,在工程初始化好以后,会默认生成CMakeLists.txt编译...原创 2019-09-09 15:04:42 · 373 阅读 · 0 评论 -
Android开发中实用的脚本工具
在我们的日常开发中,可能会涉及到截个图啊,录个屏啊,看个当前页面啊等等。这些其实都是小问题,几步操作下来,大家都能解决。但是长期下来,都时不时要搞点这种简单而重复的劳动的话,总归觉得不爽。开发做久了,就会有程序员思维,简单而重复的事情都想让计算机来完成,我只要下个命令就好,我们则可以更好的专注于开发或交流工作。写这篇博客的初衷有两个:一是跟大家分享上面提到的这种思维,工作中尽量解放自己的双手和大脑;二是分享几个实用的脚本,更便捷的完成一些操作。原创 2017-11-30 10:48:35 · 8959 阅读 · 1 评论 -
Android 8.0 Oreo的画中画模式学习
本文主要是对谷歌开发者官方微信公众号发布的Android 8.0 Oreo 画中画模式一文的学习记录。 画中画模式Picture-in-picture(PIP)简介在Android 8.0(API Level 26)中,Activity可以启动画中画 Picture-in-picture(PIP)模式。PIP 是一种特殊类型的多窗口模式,常见于视频播放场景。原创 2018-02-03 16:15:54 · 1997 阅读 · 0 评论 -
Android 8.0后台运行策略学习
本文主要是对谷歌开发者官方微信公众号发布的【中文教学视频】Android Oreo 中的后台进程等文章的学习记录。概览Service限制前台应用的定义影响所有后台Service针对Service的选项adb测试命令广播限制针对静态隐式广播接收器的选项后台位置限制受影响的 API相关文档为了流畅的用户体验,从 API 26开始,Android ...原创 2018-02-09 14:21:39 · 5075 阅读 · 0 评论 -
Android 7.0新特性——长按出现快捷方式
简介一、静态配置1.1 创建shortcuts.xml配置资源文件1.2 在Manifest中添加配置二、动态配置1.1动态添加1.2动态删除1.3 动态添加和删除演示简介Android 7.0版本有一个新特性:如果app支持,可以通过长按app图标出现一些快捷操作。一些热门应用举例: (除了Chrome,Google出品的App几乎都是...原创 2018-03-15 16:46:02 · 4065 阅读 · 1 评论 -
Android O新特性系列
说明:文章原文均来自谷歌开发者官方微信公众号,本文只收录相关链接备查。Android Oreo 的新特性介绍Android Oreo 后台策略推送通知画中画模式EmojiCompact 表情兼容库相关自动填充自适应图标可下载字体Android 架构组件Android 支持库 v26Android Studio相关Android 开发者 FAQMisc划重点的变更...原创 2018-01-31 12:29:41 · 361 阅读 · 0 评论 -
Retrofit2.0笔记——addConverterFactory同时支持xml和json格式响应数据
Retrofit2的一个特色功能,就是通过addConverterFactory()方法设置一个数据转换器,可以将http请求的响应数据转换成JavaBean。如后台常见的两种返回数据格式:json和xml,分别可以用GsonConverterFactory和SimpleXmlConverterFactory进行转换。对应的gradle依赖分别是:implementation 'com.s...原创 2018-08-26 21:05:19 · 5696 阅读 · 3 评论 -
Ubuntu编译Breakpad和Android集成breakpad笔记
Breakpad——Google出品的崩溃异常捕获和报告组件,详情:https://github.com/google/breakpad在Android中,用来捕获native层的崩溃异常,很方便。编译过程比较简单,主要参考上面github链接中的README.md,可能需要科学上网,这里不表。...原创 2018-12-05 10:59:10 · 1674 阅读 · 0 评论 -
Android TimeoutException崩溃学习笔记
文章目录主要引发原因复现解决方法主要引发原因Java对象的finalize()方法处理超时。Java的Object对象中,有一个finalize()方法,默认实现为空。public class Object { // …… protected void finalize() throws Throwable { }}finalize()的官方Doc(android-28)如...原创 2019-03-04 18:33:58 · 1296 阅读 · 0 评论 -
Android Studio "错误: -source 1.7 中不支持方法引用(请使用 -source 8 或更高版本以启用方法引用)" 解决方法
错误信息错误: -source 1.7 中不支持方法引用(请使用 -source 8 或更高版本以启用方法引用)原因代码中使用了Java8的Lambda表达式新特性,java编译器默认未兼容java8。解决方法确认本地java sdk是否支持java8。如果版本小于1.8,请先更新Java SDK。在Project Structure => 模块名 => Proper...原创 2019-03-12 14:08:06 · 6776 阅读 · 1 评论 -
Total Control adb和环境变量adb冲突解决方法
用Total control控制手机或在PC做演示很方便。但在Android开发时,可能就有问题了,Total control使用的是安装目录下自带的adb.exe,和开发者配置在环境变量中的adb,很有可能版本不一致,这时候就会导致我们在命令行使用adb命令,或使用Android studio调试时,提示adb版本不匹配。> adb devicesList of devices at...原创 2019-03-23 15:36:54 · 3075 阅读 · 0 评论 -
大厂成熟Android开发调试工具
Facebook-StethoGitHub地址:https://github.com/facebook/stetho常规配置因为是在开发阶段使用,所以可以只配置在debug模式中。debugImplementation 'com.facebook.stetho:stetho:1.5.0'在app Module中添加debug模式的Application实现类和Manifest。同理,还...原创 2019-05-14 13:57:00 · 391 阅读 · 0 评论 -
解决:APK Signature Scheme v3: Size of APK Signing Block is not a multiple of 4096: xxxx
延伸阅读:App 签名过期或泄露怎么办?别担心,Google 已经给出解决方案!通过 美团walle 的命令行工具 walle-cli-all.jar 打多渠道包后,在Android 9.0手机上安装时,出现了如题的错误信息。walle-cli-all版本:1.1.6apksigner版本:28.0.3完整的安装出错信息如下:adb: failed to install xxx.apk...原创 2019-06-12 15:56:18 · 3709 阅读 · 0 评论 -
Android Jetpack和AndroidX
文章目录Android Jetpack和AndroidX是什么?Jetpack:Android Jetpack 组件AndroidX什么联系?官方链接推荐Android Jetpack和AndroidX是什么?Jetpack:Jetpack 是一套库、工具和指南。Jetpack 包含与androidx.* 软件包库,可帮助开发者更轻松地编写优质应用。这意味着,它可以提供向后兼容性,且比...原创 2019-08-21 14:48:11 · 2659 阅读 · 0 评论