Android
文章平均质量分 52
高钙小新
这个作者很懒,什么都没留下…
展开
-
完整的 pixel 6a 刷入 AOSP 源码过程记录
AOSP 源码刷机原创 2023-09-29 12:16:34 · 1168 阅读 · 2 评论 -
记录一个 Dialog 只显示透明背景但是弹框不可见的错误
原因:Dialog 创建时 width = 0(具体为什么在部分机型会出现这种情况,大家可以自行百度)现象:自定义的 Dialog,在魅族手机上弹出时,只有一个遮罩层,框不见了。解决:在 Dialog 的 onCreate 方法中重新设置一遍宽高。原创 2022-10-31 16:38:51 · 388 阅读 · 1 评论 -
记录一个 APP 抓取不到报文的问题
一时其实是毫无头绪的,直到某一天突然看到了项目里的这几行代码,才恍然大悟。1、想要看到自己的 APP 请求握手是否是使用国密协议,通过 wireshark -- protocol 就可以看到,国密协议的会显示 GMSSL/GMTLS,而普通的 https 请求则会显示 TLSV版本号。2、普通的 wireshark 是看不到国密协议的,所以即便是国密的请求也会和普通的 https 请求一样显示 TLS,要使用支持国密的 wireshark ,大家可以自行百度就会有相关链接可以下载了。原创 2022-09-15 21:11:03 · 541 阅读 · 0 评论 -
记录一个重启 APP 的方法以撤回隐私授权的方法
根据工信部、网信办等四部委的要求,APP 首次使用需要提示用户阅读隐私政策并征得用户的同意才能收集用户信息,否则 APP 运行过程中不允许有任何收集用户敏感信息的行为。且在二级页面,需要提供用户撤回隐私授权的功能。前期在做这方面改造的时候,为了尽快满足监管的要求,这一块功能做的比较简陋,当用户撤回隐私授权时,我们只是弹框提示用户卸载 APP 以达到撤回授权的目的。随着四部委发布的文件内容越来越完善,这个简陋的功能已经不适用了,所以做了这样的改造。原创 2022-09-15 20:30:09 · 688 阅读 · 0 评论 -
记录一个 Android 7.0 文件访问权限的报错
场景:我在 asset 目录下内置了两个 html 文件,并通过 webView 加载 A.html,再从 A.html 中通过 超链接的形式跳转到 B.html,就会发生 crash ,报错信息如上。百度也很容易查到是文件权限的问题,但是我试了很多百度回来的方法都不奏效,所以这里提供一个比较另类的思路。解决:不使用超链接的形式,通过在 html 文件内 jscript 与原生页面交互,打开一个新的 Activity 来加载 B.html 文件。原创 2022-09-15 20:12:24 · 1082 阅读 · 0 评论 -
unsupported class file version 53.0
jdk 版本低于 jar 包编译版本引发的报错原创 2022-05-17 17:39:29 · 968 阅读 · 0 评论 -
关于APP 内涉及用户个人敏感信息/权限的进一步整改
前言:有一段时间没更新关于用户隐私相关的内容了。随着去年 11 月《个人信息保护法》的更新,四部委和工信部又下达了一批新的标准,这一篇就是记录一下这半年来项目里关于保护用户隐私部分的优化。一、用户未同意隐私政策之前收集用户敏感信息/权限这个问题是比较普遍的,就是用户安装完 APP 之后,未点同意之前,收集了敏感信息/权限。所以在用户点击同意之前,不可以有任何获取 Android ID、 IP、Mac 、用户账号密码等用户个人隐私信息行为出现,包括动态权限申请。包括在 SDCard 写入数据,原创 2022-04-28 14:00:32 · 7872 阅读 · 5 评论 -
关于 mPaaS PB 接入模式适配 64 位 CPU 架构中项目报错解决方案
解决 mPaaS PB 接入模式在进行 64 位架构适配时的冲突原创 2022-02-11 16:24:52 · 2440 阅读 · 0 评论 -
关于 App 是否支持 64 位架构的适配
华为应用市场近日给开发者发布了一则通知,通知内容如下:【重要】关于安卓应用在华为应用市场发布必须提供64位版本的通知尊敬的开发者,您好!为了更好地提升安卓应用性能体验、降低安卓应用的功耗影响,华为应用市场将全面推行安卓应用升级为64位版本,请您注意及时升级替换应用包体,具体节奏如下:1)2022年2月1日起,在华为应用市场新上架/升级的游戏及应用,必须包含64位版本,华为应用市场不再接收仅包含32位版本的应用;2)2022年9月1日起,华为应用市场将不再接收包含32位版本的应用。我们建议您可以原创 2021-12-14 20:21:56 · 12822 阅读 · 0 评论 -
关于 mPaaS 框架使用过程涉及用户个人敏感信息整改的汇总(最新一轮标准)
之前也写了几篇关于 APP 违规收集用户敏感信息的,由于检测机构的检测标准一直在升级,随着市场上的通报案例的增加和四部委等监管部门的标准的升级,检测在变的越来越全面,所以一直都有新的问题出现,今天就总结一下最新一轮检测报告提出的问题和对应的解决方案。一、关于 APP 的自启动行为这里有两个检测的方法,一个是检测机构的扫描工具,一个是手机自带的软件监控(可以在设置里面搜索“自启动”等关键字,可以手机系统对所有 app 的行为监控)(1)BOOT_COMPLETE(开机广播)如果项目中监听了开机原创 2021-11-03 20:54:30 · 2214 阅读 · 0 评论 -
关于 mPaaS PB(portal-bundle)接入模式下,找不到第三方 so 库的解决方法
app 里面一般都会用到几个第三方库,很多第三原创 2021-10-30 11:30:12 · 589 阅读 · 0 评论 -
关于 TextToSpeech 在 mPaaS Plugin中使用失效的解决方法
近日项目中为了进行适老化、无障碍改造,使用了 TextToSpeech 进行一些文本的播报,来提升视障人士的使用体验。mPaaS 这套框架中,H5 页面与原生端的交互是通过 H5Plugin 来实现的,业务需求中有这么一项,需要播报 H5 页面中的验证码,但是在使用过程中发现,同样的代码,在原生的 Activity 中是可用的,在 H5Plugin 中却无效。初始化代码大概是这样的如下:textToSpeech = new TextToSpeech(this, new TextToSpeech.O原创 2021-10-03 23:21:59 · 632 阅读 · 0 评论 -
简单使用 Accessibility 及 Android 适配 TalkBack,实现适老化和无障碍
前言:工信部发布的互联网应用适老化及无障碍改造的通知,app 需要进行改造,以提高老年人或者视障人士在使用 app 过程的便捷性,改造的内容包括但不限于1、UI 界面更简单、整洁(界面元素不能过于复杂,字体字号需要偏大、清晰)2、页面焦点导航的适配3、页面元素需要适配 TalkBack 朗读4、搭建无障碍服务 service关于界面文字字号大小的选择的,我前面发过文章介绍过方案,今天主要讲讲 android 中 Accessibility 相关使用以及其他一些简单的改造。一、给控件加原创 2021-10-03 23:01:06 · 8711 阅读 · 7 评论 -
关于 app 开启 talkback 模式,界面上的数字串无法正确播报数字(播报成了金额)的解决方法
项目场景:根据工信部的要求,APP 需要做适老化改造,让长辈或者视障人士在使用 app 时能更加方便,体验更好,其中一个改造点就是用户开启了手机的 talkback 模式后,app 能否正确播报相关内容,给视障人士/长辈提供正确的反馈和使用引导。问题描述:改造过程中,有这样一个场景,用户开启了 talkback 模式,单击数字串的文本或者输入了数字的输入框,播报的内容不正确。例如:1、输入框,输入了验证码:123456,talkback 播报为:“十二万三千四百五十六”;2、文本框,原创 2021-09-04 17:01:56 · 1105 阅读 · 0 评论 -
基于 mPaaS 框架 Portal-Bundle 接入方式下 Multidex 分包失效的解决方法
mPaaS 最新的基线已经有 aar 接入模式了,这种模式更接近安卓原生的开发,但是有些老的项目还是 PB(portal-bundle) 接入模式,PB 接入模式是不支持 multidex 分包的,如果出现了一个 bundle 中方法数过多报错的话,通常都是一个 bundle 接入太多第三方 sdk 导致的。解决方法:把这些第三方 sdk 抽出来一个新的 bundle(假设为 bundle B),功能集成在 bundle B 的 api moudle 下,A bundle 通过对 B bundle原创 2021-09-04 15:30:34 · 555 阅读 · 0 评论 -
实现 APP 全局修改字体大小(适老化/关怀版 改造)
人行发布的要求,移动应用要做好对视障人士和老年人的适配,我们都知道有些做的不是很好的 app ,别说对老年人和视障人士不太友好,对普通人来讲也时常出现不易操作的情况。我们这个年纪的人,父母其实刚好经历了从功能手机到智能手机的时代更替,很多时候父母对手机上的功能是用不明白的,即使教了很多遍他们也不是很懂。像我爸就不会用现在的银行软件转账、存款,每次都需要我帮他操作。所以呀,app 做好对老年人和视障人士的适配改造,是很有必要的。今天先记录改造的第一个功能点,就是 app 内全局的字号更改。微信和支付宝原创 2021-07-03 14:38:54 · 4200 阅读 · 6 评论 -
手贱删除了 mPaaS BP 接入方式 portal 中的 amreabi 文件夹导致安装失败
前几天做死代码的清理,然后发现 portal 中 lib 下的 armeabi 文件夹是空的,就手贱把它删掉了,后续安装也没有发现其他问题。今天做 app 内更新的时候,fa'xian原创 2021-06-17 16:41:36 · 206 阅读 · 0 评论 -
切换 Android Studio 运行时 JDK
忘记保存当时的报错截图了,大概就是虽然再 gradle 中配置了使用 java8 ,但是依旧和 AS 默认运行的 JDK 版本冲突了,解决方法就是切换运行时 JDK。1、安装一个j原创 2021-06-15 21:23:22 · 2807 阅读 · 2 评论 -
关于代码中调用安装 apk 成功后首次打开 app 闪退的问题
记录一个唤起安装 apk 文件成功后打开 app 首次会闪退的问题。现象:app 内更新版本,下载完 apk 后调起安装,系统安装完成后会自动打开 app ,这时候 app原创 2021-06-15 20:59:41 · 1249 阅读 · 0 评论 -
关于项目中如何删除第三方库、插件所以引用的权限以及蓝牙(非危险权限)的处理
又来了,监管部门安全整改相关的内容。这次整改的内容是 app 中 AndroidManifest.xml 中安卓权限的申请。说说检测机构的判定标准吧,如果在 AndroidManifest.xml 中声明了某个权限,则需要有对应的功能场景,否则就算是过度声明。检测方法呢,就是反编译 apk 包,直接从里面的 Androidmanifest.xml 文件中查看最终的权限申请。之前其实也没有很认真了解过这一块的内容,都是需要用就声明一下。这里整改的项目,由于之前的开发人员使用了很多第三方的S原创 2021-03-31 14:24:30 · 1507 阅读 · 0 评论 -
关于使用 View Binding 不生效的记录
今天犯了个很低级的错误,记录一下使用 View Binding 的过程中,调用 binding 的控件设置文字啊,点击事件什么的都没有生效,很纳闷,后面发现是 setContentView 忘记改了,代码如下:圈起来的这一行,setContentView 需要改成当前的 Activity 的 ViewBinding 的根布局...原创 2021-03-31 10:39:45 · 2548 阅读 · 3 评论 -
关于 APP 内使用 CALL_PHONE 侵犯用户隐私的问题
依旧是关于监管部门对于 app 使用用户信息安全检测的相关内容。这次是关于 APP 声明了 CALL_PHONE 权限,用于 app 跳转系统打电话界面,实现拨号功能。监管部门要求 app 不再声明该权限,因该权限侵犯了用户的个人隐私信息。项目中代码是这样的:Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNum));startActivity(intent);如果使用的是 Intent.ACT原创 2021-03-29 17:53:47 · 2239 阅读 · 0 评论 -
新增 mPaaS 隐私权限弹框引发的一系列问题及解决过程/方法
前情提要:监管部门要求在用户点击隐私协议弹框中“同意”按钮之前,App 不可以调用相关敏感API。即不能获取用户手机 Mac 地址、IP、Android ID 等信息。APP 也因此受到监管部门的通报批评,算是一次紧急的修复上线。项目中使用的是阿里的 mPaaS 的框架,这套框架提供了对应方法来阻断框架的初始化流程,使得用户在点击了隐私政策 “同意” 按钮后才进行框架组件的初始化,获取相关的需要的用户个人信息(mac 地址等)接入方式参考官方文档:https://help.aliyun.com/do原创 2021-02-22 17:38:23 · 1114 阅读 · 0 评论 -
解决 vivo x9 手机无法安装调试 app 的问题 Installation error: INSTALL_PARSE_FAILED_BAD_MANIFEST
今天用测试机连接 usb 使用 eclipse 安装应用报错如下:Installation error: INSTALL_PARSE_FAILED_BAD_MANIFESTPlease check logcat output for more details.Launch canceled记录一下解决方法,在设置-更多设置-恢复出厂设置-清除所有数据中恢复出厂设置,再打开允许安装位置来源程序开关,就可以正常安装调试了。...原创 2020-11-26 14:39:53 · 973 阅读 · 0 评论 -
关于升级第三方组件报错 com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArc
最近项目安全风险整改,目前项目里面使用的组件版本比较低,存在一些安全漏洞,需要升级第三方组件的版本。先贴一下我的报错,有三个组件的升级会涉及到这一类报错,区别是三个组件报错涉及的包名不一样,分别是 (1)Gson 升级到 2.8.6(2)OKhttp3 升级到 4.9.0(3)Rxjava 升级到 3.0.6百度上大多数的说法都是没有使用 java 8 导致的,于是我加上了这段配置compileOptions { sourceCompatibility JavaVers原创 2020-11-04 18:34:05 · 740 阅读 · 0 评论 -
关于金融类 app 退出到任务列表进行高斯模糊的尝试
最近公司的 app 有个风险安全整改的需求,要求 app 在任务列表的时候展示要进行高斯模糊,效果如下图所示:一开始看到自己手机上(Redmi K20)的银行类 APP 都实现了这样的效果,觉得应该是可以实现的,就开始百度查相关的实现方法。但是基本上百度出来的99%都是 ios 的实现方式,安卓的几乎没有,下面是我唯一找到的两篇跟安卓相关的文章。1、https://blog.csdn.net/henkun/article/details/1027636542、https://blog..原创 2020-11-04 17:49:07 · 2003 阅读 · 4 评论 -
关于 .gradle/cache/modules-2/files-2.1 文件夹下第三方包解析报错的解决方案
贴一个最近遇到的报错,某天重新打开工程编译的时候遇到了这样的错误。我这里报的错都是清一色的解析 xml 文件里的 “&”符号报错,但是这些包都是第三方的包,不可能是自己的代码引起的。1、尝试了 clean project,删掉 build 文件 rebuild,删掉 .gradle 文件都没有起作用。2、尝试从本地的 maven 仓库中删除对应的包名的文件夹,重新编译也没有效果3、最后找到电脑中该报错路径下对应的报错的第三方包,删除,相当于删除本地的 Cache,去重新下载。路径原创 2020-11-04 11:43:18 · 9464 阅读 · 0 评论