- 博客(25)
- 收藏
- 关注
原创 Android动态设置系统音量最大值
Framework层需要提供一个动态设置系统音量最大值的开放接口供应用层调用,应用apk通过设置最大音量百分比后系统声音效果需要立即生效,同时原生音量条的最大值范围也要变化。
2024-07-06 18:01:07
1638
原创 Android CTS环境搭建
CTS即Compatibility Test Suite意为兼容性测试,是Google推出的Android平台兼容性测试机制。其目的是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。只有通过CTS认证的设备才能合法的安装并使用Google market等Google应用。CTS支持64位Linux计算机,Windows或MacOS不支持CTS。适用于Ubuntu的Java开发工具包。确保已安装最新版本的adb和aapt2,并将该工具的位置添加到计算机系统路径中。
2024-06-17 19:07:46
2697
3
原创 Android SELinux访问data目录
Android SELinux默认开启时,若进程想访问并操作data分区的一个目录,通常需要解决部分进程访问data目录而造成的功能兼容性问题,如访问权限扩大或违反Google neverallow规则导致的认证失败。
2024-02-06 18:00:35
1164
原创 Android执行带有通配符的shell命令
我在Android中使用getRuntime.exec()来执行一些shell命令并处理输出。其中存在一些命令,我的程序没有给出任何输出且给出了错误提示"No such file or directory",但相同的命令在命令提示符下输出了正确结果。
2024-02-04 20:00:00
357
原创 so库崩溃问题的定位与分析
了解tombstone日志中关键信息的含义,配合addr2line或ndk-stack这两个工具的使用,那么定位分析崩溃问题就非常容易了。工欲善其事,必先利其器。
2024-02-02 22:00:00
4284
8
原创 Android访客用户支持安装第三方应用
Android访客用户下操作文件管理器里的apk安装是被限制的,且安装时会提示“该用户无法安装未知应用”。
2023-12-08 20:30:00
1417
原创 Android系统预安装第三方应用
Android设备在第一次开机时需预装一些第三方应用,安装后用户可卸载。同时恢复出厂设置并清除系统数据后能够重新预装应用。
2022-10-31 22:00:00
2407
2
原创 初探Android系统打印功能
在Android平台上对激光打印机和喷墨式打印机进行了连接共享和打印效果测试。并对比Windows平台上的打印测试,分析其中的打印协议,现记录总结如下。
2022-10-24 22:00:00
9604
原创 Android开机动画的动态替换
支持Android机器上开机动画的动态替换,即系统动画bootanimation.zip支持在上层应用中自定义修改,重启开机后生效。
2022-10-21 22:00:00
1930
1
原创 内网测试工具-LibreSpeed
为了在局域网环境下对Android新设备测试网络速度是否达标,并对比不同平台设备的网络速度,从而完善新平台的wifi系统。发现LibreSpeed是一款可快速部署,可用于测试网速的工具。不仅提供功能,还提供可以配置和分发一个使用现有服务器执行速度测试的Android应用。
2022-10-21 15:30:43
4758
原创 Android S版本MtkSettings的加载流程(一)
系统设置作为系统应用是一个需要高度客制化的原生应用。以Mtk平台Android S版本的MtkSettings源码为例,分析其主要的加载流程。
2022-10-17 14:30:32
1561
1
原创 Android系统源码编译的一点实践
目前公司的Android系统平台已经升级到Android 12了,最近迭代的系统项目涉及到Android 9、Android 10等,系统是庞大和复杂的,而源码调试工作需要一定的编译时间。在服务器争分夺秒的资源抢占下,即使寥寥几行代码的修改也能占据大部分编译时间,至此,如何提高系统源码的编译速度尤为重要。
2022-09-30 17:33:35
1073
原创 对Android Q系统源码编译速度的一次优化
工作中发现在MTK平台编译某一模块时,Android Q的系统源码编译速度比Android P慢了许多,需要分析下原因并改善编译速度。
2022-09-29 20:26:13
1642
1
原创 初探make clean-target规则
前言在Android源码根目录下执行make,会根据编译系统的根节点Makefile文件找到一系列mk文件的引用。其中main.mk作为开始编译的入口,Android构建系统的产品配置和函数定义都可以在/build/make/core/目录下找到。其中make clean-target是对特定目标(通常是模块名)执行清除操作。编译系统需要遵循的基础规则是定义在base_rules.mk文件里,我们可以看到关键词:make clean- targets,该规则就定义了clean-$(LOCAL_MODUL
2022-05-06 20:45:00
652
原创 十大排序算法
十大排序算法(C / C++)一、冒泡排序1. 原理2. 实现3. 复杂度二、选择排序1. 原理2. 实现3. 复杂度三、插入排序1. 原理2. 实现3. 复杂度四、希尔排序1. 原理2. 实现3. 复杂度五、归并排序1. 原理2. 实现3. 复杂度六、快速排序1. 原理2. 实现3. 复杂度七、堆排序1. 原理2. 实现3. 复杂度八、桶排序1. 原理2. 实现3. 复杂度九、计数排序1. 原理2. 实现3. 复杂度十、基数排序1. 原理2. 实现3. 复杂度排序汇总一、冒泡排序1. 原理冒泡排序
2022-05-04 23:44:10
1024
原创 使用AndroidAutoSize进行屏幕适配
公司许多应用的UI都是用AndroidAutoSize框架来适配的,其中系统源码apk都是基于mk文件编译的。由于在不重新提供UI设计图的情况下需要进行大量的应用移植和适配工作,AndroidAutoSize库能很好的适配不同机型的UI显示。介绍使用上非常简单,只需要填写设计图尺寸即可接入项目。使用dp、sp为默认单位进行布局,侵入性很低。原理上因为只需要修改一次density,项目中的所有地方都会自动适配,这种一刀切的做法有时候是一种优点,但也是其最大的缺点,当某个系统控件或三方库控件的设计图尺
2022-04-30 08:30:00
2217
1
原创 OpenCv Android常用的图像操作
项目中使用OpenCv Android SDK(版本4.5.4)进行图像处理,支持的操作很全且效果佳,对于其中的一些图像操作方法记录如下:Mat与BitmapMat是OpenCv中用来存储图像信息的内存对象,内部还包括图像的宽、高、类型、维度、大小、深度等信息。int width = srcMat.cols();int height = srcMat.rows();int dims = srcMat.dims(); //维度int channels = srcMat.channels();
2022-04-29 18:02:09
3755
1
原创 实现YUV I420格式的图像边界扩充
对I420格式的YUV图片实现填充padding效果使用libyuv对I420的yuv图像进行处理的过程中,需要自己实现图像填充,通过在边界填充固定的颜色值形成一个正方形图像。类似于OpenCV中的copyMakeBorder函数,可以达到对图像扩充边界的效果。I420的存储格式属于YUV Planar格式的一种,先连续存储所有像素点的 Y 分量,紧接着存储所有像素点的 U 分量,再是 V 分量。相对于其它YUV存储格式是比较简单的,因为三个分量是按顺序连续存储的,所以libyuv对于图像数据的裁
2022-04-29 15:08:59
1163
原创 Camera2 YUV_420_888转NV21
项目需要对Android相机预览帧进行图像处理。而Camera2 从ImageReader(设置通用的ImageFormat.YUV_420_888格式)中获取的是yuv格式数据,yuv本身只存储颜色信息,不包含图像宽高信息,回调后yuv分别存储成Image Planes的3个数组中。设置相机预览大小1920 * 1440后打印3个planes数组信息如下: int width = image.getWidth(); int height = image.getHeight(
2022-01-26 15:28:00
7939
6
原创 TensorFlow Lite编译Android so库
工作中最近用到了Google TensorFlow技术,Android端对相机预览图进行预处理,并加载tflite模型并推测运行结果。期间需要用到lite的so库等相关sdk,并自己实践编译了一下。通过编译tensorflow源码生成libtensorflowlite.jar 和libtensorflowlite_jni.so库。一、tensorflow源码git clone https://github.com/tensorflow/tensorflow.git二、编译环境和工具1、Bazel编
2022-01-25 17:13:23
4930
原创 Python爬取当贝市场APK应用信息并下载
年初自学python一段时间,项目中很少遇到需要实践python的地方,最近公司机顶盒的应用市场需要进行应用挂网,测试同事需要从当贝市场和奇珀市场下载特定的200多个应用,并提取信息挂到自己的服务器上,作为客户端开发的我,能用程序实现的绝对不会使用重复劳动力。安装python 3.7,针对爬虫程序依赖的module,以管理员身份启动cmd所需模块:beautifulsoup4 处理网页解析r...
2018-10-15 20:52:12
1877
原创 对Android APK文件反编译查看其源码
概述 作为android的开发者,相信你会有那么一刻,比如,对于手机中某一款App,有一项功能或者效果你蛮喜欢的,想学习一下它具体是怎么实现的。追求高一点的话,我想深究它这个App的项目架构,本着一探究竟的原则,我需要查看工程的源代码。所需工具 apktool:由apk获得dex文件 dex2jar:dex文件反编译成java包 jd-gui:查看jar文件的java源码过程 网上下载
2015-11-02 18:07:55
5262
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人