logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

解决FORTIFY错误 --- FORTIFY: strchr: prevented read past end of buffer

导致bug的原因:在android中通过log输出发现char默认是无符号的(unsigned),所以在读取到文件结尾的时候,char c获取到的值转换成十进制的值应该是-1(EOF),由于char默认是无符号的,导致转换成十进制的值是255,所以一直没有读取到文件的结尾。FORTIFY是GCC和Clang编译器提供的一套安全扩展,通过替换标准库函数(如memcpy、strcpy、printf等)

#android#c语言
Android系统打通HAL层到应用层 --- Framework框架搭建

路径:frameworks/base/services/java/com/android/server/SystemServer.java#startOtherServices()路径:/frameworks/base/services/core/java/com/android/server/TestService.java。路径:/frameworks/base/core/java/andro

#android#java#c++ +1
适配Android 12的行为变更-----精确的闹钟权限

为了鼓励应用节省系统资源,以 Android 12 及更高版本为目标平台且设置了精确的闹钟的应用必须能够访问“闹钟和提醒”功能,该功能显示在系统设置的特殊应用访问权限屏幕中。如需获取这种特殊应用访问权限,需在清单中请求 SCHEDULE_EXACT_ALARM 权限。开发者网站请参考:行为变更:以 Android 12 为目标平台的应用 | Android Developers简单来说就是代码中如

#android#java
RingtoneManager --- 使用canonicalize(uri)方法规范URI

问题:默认铃声识别不到URI路径。原因:默认铃声的URI没有加后缀在RingtoneManager中,使用的是.equals()来对比Ringtone的URI,获取Ringtone的位置。(默认铃声的URI没有加后缀,所以没有遍历到)Uri uriFromCursor = getUriFromCursor(mContext, cursor);if (ringtoneUri.equals(uriFr

#java#android
Android --- ACTION_SEND调用系统分享过滤指定app(解决file域的访问限制)

手机可以使用微信、QQ、蓝牙等应用对文字、图片等资源进行分享。安卓系统本身可以很简便的实现分享功能,因为我们只需向startActivity传递一个 ACTION_SEND 的Intent,系统就为我们弹出一个应用程序列表,如果我们再指定intent为chooser的方式,那么这个列表就能每次都出现而且都是相同的操作。使用ACTION_SEND弹出的应用程序列表展示的是系统中所有可以进行分享的应用

#android#java
将Android.mk工程迁移为gradle项目(apk化)

项目背景:Android.mk 文件位于项目 jni/ 目录的子目录中,用于向编译系统描述源文件和共享库。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。MK项目的代码调试通常使用命令进行编译,有的时间比较长,并且不能debug。通过将Android.mk工程迁移为gradle项目,就可以在Android Studio上进行调试,在一定程度上提高了

#android#gradle#java
到底了