自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Android JNI的CMakeLists.txt配置解读

CMake编译需要链接哪些库,就是代码中使用到的库,这里都要添加,不然编译不过,但是会不会达到so库中就不知道了。通俗意义上讲呢,就是JNI的项目名称,打包生成的so库的名称,可以用。这个玩意就是寻找NDK中的so库,然后可以给它起别名。添加子项目到当前项目中,不添加的话代码是连接不到的。,没有这个其他目录下的头文件是找不到的。库起的名称,后面要使用的话就要用。获取到这个名称在其他地方使用。导入头文件目录,以便在代码中。最小支持的CMake版本。

2023-08-30 11:37:46 536

原创 Android插件化原理及基础实现【hook篇】

插件化的理念将应用分为多个模块,分出宿主与插件用户安装宿主,动态加载插件插件化的优点按需加载、可插拔、动态更新减小apk体积,解决方法是超过65535的问题插件分开开发与编译,提高效率,降低耦合度插件化的缺点提升项目复杂度插件化框架特性dynamic-load-apkDynamicApkSmallDroidPluginVirtualAPK作者任玉刚携程wequick360滴滴四大组件支持只支持Activity只支持Activity只支持A

2022-05-29 15:56:02 1363 2

原创 Android SDK升级到31的坑(Installed Build Tools revision 31.0.0 is corrupted)

Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.annotationType(): unrecognized Attribute name MODULE (class com.sun.tools.javac.util.SharedNameTable$NameImpl)

2022-04-01 17:35:09 7791

原创 Android逆向工程之dx工具jar2dex失败,使用d8

遇到问题在使用apktool做apk逆向工程时,我们一般都需要将apk反编译为smail,然后将要加入其中的SDK也编译成smail,然后将二者合并起来之后打包成一个新的apk,其中将SDK的jar编译为smail需要两步使用dx工具将jar转为dex,dx的工具在AndroidSDK中可以找到,dx.jar。dx --dex --output=out sdk.jar sdk2.jar...​ out要输出的smail目录​ sdk.jar sdk2.jar… sdk的jar文件,可以是多个

2021-04-13 18:19:16 2423 1

原创 Android逆向工程之aar包转jar包找不到R文件的问题

遇到的问题目前的工作是游戏出渠道包,使用的apktool反编译apk,然后打入渠道SDK,然后回编译生成渠道包的方式在新接渠道SDK是,发现渠道的依赖包是aar,那就需要将之解压,把jar和so放入游戏包的libs中,将res放入游戏包的res目录下,再解决一些资源名重复的问题,本来以为都完工了,因为以前就是这么干的,但是打完包运行的时候,使用到SDK的地方直接报错,报错信息如下:找解决思路以上的大致意思是SDK中的代码找不到对应的R文件,那就是说aar对R文件有专门的定义,当AS依赖aar时,会

2021-04-12 15:55:39 1216 2

原创 Android字体加粗,UI小姐姐说太粗了,解决办法

最近开发Android App,UI小姐姐验收的时候说,嗯,你这个字体没加粗呀我说,好的,textStype="bold",然后屁颠屁颠的跑去给UI小姐姐看结果UI小姐姐说,这个。。怎么这么粗,就是要那种中粗,ios都有的中粗体嗯。。好吧,中粗,粗的不明显的那种粗,额,似曾相识呀,难道就是甲方爸爸提的那种五彩斑斓的黑?然后百度呀,google呀,(当然google的英文看不懂,最后还是靠csdn)最后找到的这篇文章Android中TextView字体加粗小技巧,那个兴奋呀,马上实验嗯

2020-11-19 11:46:56 3980 2

原创 SVN Cleanup失败

在团队合作中,我们不可避免的使用团队合作软件,如Git,SVN等,一般公司都会使用SVN,那么今天我们就来说一下在SVN使用过程中出现的一个问题——Cleanup失败在使用SVN的过程中经常会出现操作不当,更新失败,导致SVN异常,需要cleanup的情况但是有些时候会出现cleanup失败的问题,如下这个时候就需要使用sqlite工具来清空工作区的异常信息首先在网上下载一个Sqlite3的工具,然后将其放在.svn目录下然后进入命令行,定位到sqlite3所在的目录,输入sql

2020-08-28 13:40:18 383

原创 OkHttp使用拦截器之后就拿不到响应内容的坑

使用OkHttp的时候想使用拦截器去拦截服务器返回的数据做一些特殊处理,但是当我使用了response.body.string()然后,返回原来的response,到最终读取响应内容是,发现读取不到了,返回的是空之后又想到了HttpLoggingInterceptor好像既能拦截内容,又不影响后续处理,解析出来源代码发现做了一个buffer复制,然后根据HttpLoggingInterceptor实现自己的拦截器,完美通过其实问题很简单,http请求就是想到于有个inputStrea

2020-05-09 17:22:25 1617

原创 OkHttp使用HttpLoggingInterceptor的坑:下载文件请求阶段需要等很久以及OOM

最近使用到了OkHttp,准确的说是retrofit,毕竟retrofit是okhttp的封装,但是实际上问题是处在okhttp上面使用HttpLoggingInterceptor去打印请求和响应日志,使用了level = Body正常请求没什么问题,但是当我使用这个okhttp实例去下载文件的时候出现了问题,请求很久才能拿到正文开始下载开始我以为是链接的问题,换了之后发现还是这样,经过一番定位(一行行注释),把问题定位到了HttpLoggingInterceptor拦截器上,发现添加了这个

2020-05-09 15:22:29 2357 1

原创 Kotlin中使用Dagger的坑:使用@Named限定符报错

最近开发APP使用到了Kotlin,Daager2,以为一切都和Java一样的使用,然后就经历过了kapt,@JvmField等问题之后又发生了@Named限定符问题事情的经过是这样的,使用到了retrofit,想提供两个retrofit实体使用在不同的地方(其他文章会讲到使用场景)然后就使用到了@Named限定符具体代码如下声明两个实例提供者然后就是使用,java使用没什么问题然后就遇到了接下来要讲的问题,kotlin使用的时候,显示正常使用看着没啥问题,编译,哦豁

2020-05-09 14:50:38 459 2

原创 viewpager的无限滑动

viewpager的无限轮播有两种办法一、Integer.MAX_VALUE原理是将Adapter的getCount返回Integer.MAX_VALUE,然后让viewpager的初始位置定位到Integer.MAX_VALUE / 2 的位置,这样左右就各有十几亿的滑动空间,就实现了一个无限滑动的假象(稍微优化一下,可以定位到数据源的第一个,Integer.MAX_VALUE / 2 ...

2020-03-18 16:06:14 464 2

原创 Kotlin中使用Dagger的坑:@Inject报错

最近开发App,由于学了些kotlin,感觉挺实用,比java要简洁,就用到项目中了当用到dagger是,使用kotlin写的类,@Inject注入的时候报错了注入失败了,然后我看了一下java的注入写法,以及@Scope都一样,java就没有问题然后觉得应该是kotlin注入需要特殊处理,之后就发现了这篇文章https://blog.csdn.net/qq_26585943...

2019-12-22 14:12:13 2125 2

原创 使用Glide重新加载图片时会闪烁,RecyclerView等控件

最近开发使用Glide加载图片到RecyclerView的item中的ImageView,发现重新刷新时每个ImageView都会闪烁一下在网上找了很多解决方案:1.更改RecyclerView中的 DefaultItemAnimator 类中的 animateChangeImpl() 方法,去掉透明度变化然后再将更改好的类设置给RecyclerView发现没什么用2....

2019-12-22 11:32:54 3869 1

原创 apk逆向工程之方法数超上限65535(1)

前段时间为游戏出渠道包,当拿到游戏母包的时候,有点吃惊,1.6G;虽然现在的游戏普遍都这么大,但是我接过的包一般都是3、4百兆这样子的接下来就是按照惯例打包了,自认为不会出什么问题,但是到回编译的时候,出现了一个很熟悉的错误,在写APP的时候遇到过,很多理论书籍上都写过得问题,方法数超上限(具体为什么超上限,为什么会是65535,可以看看相关资料,因为我不一定会写这方面的文章),Unsigne...

2019-11-26 15:33:47 383 2

原创 apk逆向工程之aapt生成R文件报错

最近对接一款游戏,拿到母包的时候按照以往的套路打包,想着估计没什么问题,毕竟打包这么多回了,门儿清的很。可是不好的事情还是发生了,回编译的时候报了个first type is not attr,百度了半天,都没找到解决方案(其实一开始就有解决方案了,只是我眼神不好,理解能力较差,没注意)。网上说是由于apk包是as中的aapt2打出来的,而apktool使用的是aapt,所以回编译的时候出...

2019-11-25 16:07:08 1048 5

原创 生成sshkey,公私钥不对称加密key,加入github public key

今天玩github的时候,发现没有加入电脑的public keygithub一个共享仓库网站,其实就是git的一个远程仓库sshkey一种公私钥不对称加密的算法,就是ssh协议的一种加密实现想要将自己的项目传输到github上需要一个自己电脑的公钥存在github账户中,那么电脑生成sshkey的方式:ssh-keygen -t rsa -C "your email"-t指定秘钥类型,...

2019-05-21 16:27:34 195 1

原创 app逆向过程之修改apktool.yml的内容不起作用

前两天打包apk的时候,因为有些三方SDK的targetsdkversion低于23,没有实现运行时权限的处理,所以要将母包的targetsdkversion改为23以下反编译之后修改apktool.yml中的内容可以修改包名,版本号,版本名,其他的东西可以看其他文章,我也是刚开始接触,不太了解,后续会加上来回归正题,修改了这里之后,按理说就可以了,可是,回编译之后发现没变,还是以...

2019-05-20 21:06:51 3562 5

原创 app逆向工程之apk回编译安装之后背景音乐出不来

前两天打包一个游戏对接三方渠道,结果打包出来安装之后,发现游戏的背景音乐没了,查看日志发现是一个很常见的异常,解释也很清楚说是资源可能被压缩,然后百度到一篇文章说是因为apktool有一个属性可以控制资源文件不被压缩,经过查看发现在反编译之后的文件夹下的apktool.yml文件中,发现有两个属性,一是控制文件是否压缩指定为falsecompressionType: false设置完...

2019-05-20 20:55:00 701 1

原创 走过的道路

博客开始写在开始陈述过往活在当下程序员的样子写在开始今天是第一天开始写博客,注册账号五六年了,从最开始只是小白新手,看文章也看不懂,到后来在这里解决了很多技术上的问题,一篇博客都没有发表过,可以说是很奇葩了,就在今天,额。。不对,昨天晚上,加班无聊的时候突然想写博客了陈述过往最开始注册账号的时候,压根不知道博客是什么,刚学程序的时候曾经进来看过一些文章,那时候对一些专业术语不清楚,就是看标...

2019-05-20 11:15:49 202 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除