
android
文章平均质量分 53
Zaratustra
不能听命于自己者,就要受命于他人
展开
-
Nexus 6 编译并刷机 Android 7.1.1 AOSP以及常用的修改源码快速验证方法
Nexus6编译刷机以及常用的修改源码快速验证方法原创 2022-11-29 21:57:50 · 1325 阅读 · 0 评论 -
Broadcast的Intent中塞入INTENT_NEW_TASK引发的兼容性问题
0. 起源在做通知栏时,因为需要做点击通知栏做一些非启动Activity的操作,因此需要通过如下代码接受点击通知栏事件的广播Intent clickIntent = new ntent(mContext,NotificationClickReceiver.class);PendingIntent contentIntent = PendingIntent.getBroadcast(mContext原创 2017-08-14 14:37:09 · 437 阅读 · 0 评论 -
Gradle+CMake构建Android Native项目
一. 背景在Android Studio 2.2的时候,已经默认使用CMake的Native编译方案,直接使用Android Studio创建新工程即可。简单的流程可以参考官方CMake+Gradle文档在 Android Studio 2.2 中愉快地使用 C/C++这边文章主要讲解为什么要使用CMake,简要介绍CMake的一些配置,以及CMake和Gradle结合的方式。二. CMake介绍2原创 2017-09-13 14:30:37 · 1943 阅读 · 0 评论 -
Android JNI接口混淆方案
一. 背景由于项目有一些比较敏感的判断函数放在了native层,比如是否被改包,是否被Hook,是否被监听,是否有代理,是否运行了一些敏感程序等等,这种接口在编写的时候为了方便一般会写成isModifyPkg,isHook,isListening等等这样的函数,由于是JNI方法,因此也不能混淆,所以很容易被居心不良者直接hook住Java层或者反编译后通过关键字查找到函数调用,从而改变判断逻辑。因此原创 2017-09-13 18:06:50 · 1459 阅读 · 0 评论 -
Android虚拟机多开检测
0. 背景目前市面上越来越多通过虚拟化多开的应用或者开源项目,包括平行空间VirtualApp双开助手DualSpaceGo双开双开精灵其中VirtualApp是一个个人开源的,直接点击可以跳转到GitHub页面。这些虚拟化方案都已经非常成熟并且许多经过了市场的检验。但是很多敏感的应用,比如支付,社交,金融并不想让自己运行在虚拟环境中,因为在虚拟环境中很容易进行伪造设备,进行注入,进行原创 2017-09-14 23:40:30 · 8189 阅读 · 6 评论 -
Android ndk之so体积缩减
零.背景SDK对体积比较敏感,而且除了接口代码其他全部用Native实现,armeabi下的so大概有800k,目标是缩减40%左右。因此有了这次对SO体积进行缩减的过程。体积的优化主要有四个层面,分别是代码,编译参数,项目结构和优化工具,下面对这四个方面进行说明。一. 代码层面代码层面无非是替换部分臃肿的第三方库,精简自己的实现代码,尽量减少stl库的使用,甚至纯粹用c实现。 就我的这个项目而言原创 2017-09-04 14:56:35 · 11063 阅读 · 0 评论 -
关于做Notification的一些经验
需求是这样的:一个显示应用下载器状态的通知栏,能显示下载进度,下载速度,任务数量等等信息。1. 常驻通知栏其实出来这个需求是因为下载器需要一个Service作为承载,特别是当应用切换到后台时,没有一个前台Service在跑的话,很容易被系统回收掉。一开始年少无知,不知道为啥应用宝,豌豆荚等等应用商店的下载都要启动一个常驻的通知栏,后来才发现这样才能将Service保持在前台运行。原创 2017-08-14 14:41:19 · 356 阅读 · 0 评论