自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张将军的博客

每天进步一点点

  • 博客(10)
  • 收藏
  • 关注

原创 性能优化-apk瘦身

matrix做arm能兼容v7,v8但是不能兼容so库的崩溃是因为指令集不同,按照上图配置,会打3个包,分笔试v8a,v7a,以及包含全部so库的名叫universalApk的一个apk。linker框架+soloader做远端so的自动化的下载,用来兼容低版本的手机so库的兼容性问题,不能向下兼容。(1)只适配armeabi的APP可以跑在上;(2)只适配可以运行在和arm64-v8a;(3)只适配arm64-v8a可以运行在arm64-v8a上。...

2022-07-24 22:38:29 965 1

原创 File IO-app的加固

META-INF里边是签名的文件,dex文件就是Dalvik,反编译主要是针对这个文件。混淆之后的代码基本逻辑没有变化,还是可以了解到其中的逻辑。免费的加固方案加固的意义不是很大。

2022-07-17 15:46:36 493

原创 java虚拟机与安卓虚拟机的区别

目录整体区分Dailk和ART安卓中的类加载器类加载机制采用双亲委托机制JVM是基于栈的虚拟机;而安卓是基于寄存器的虚拟机(ART和davik)。1、寄存器 上边这个a+b在寄存器中的运行方式是:从物理地址为100的位置拿到第一个数放到寄存器AX中,物理地址是104的地方拿到第二个数存到BX中,,然后再ALU里边完成算数相加,将结果存到寄存器CX中,最后将结果地址存在108的位置。寄存器就是一个晶体管。安卓的虚拟机是为了模拟真实的寄存器的操作流程。 相比于JVM。每次都需要将要操作的数据经过操作数栈,安卓这

2022-07-10 23:12:24 1675

原创 Java I/0在安卓中的运用

读文件,创建一个InputStream,然后创建一个DataIputStream,传入BufferdInputStream,然后再交给FileInputStrem中。因为我们是针对内存来说的,对于内存来说的,in就是进入内存,out就是从内存中出去。学生上学需要用到自行车,与自行车是一种依赖关系,使用带箭头的虚线表示;最大的缺点类特别多。包括被装饰着和装饰者。.....................

2022-07-10 23:08:53 383

原创 JVM内存管理(一)

前言:首先需要理解的是JVM是一种规范,在不同的平台上,如果有对应平台的虚拟机,那么我们编写的Java程序都是可以在对应平台的虚拟机上边运行的,这也就是Java语言具有的跨平台能力。

2022-07-03 21:30:36 227

原创 序列化与反序列化 :单例

序列化与反序列化 :单例2、单例类如何防止反射?e1 和 e2是两个不同实例,导致单例存在多个实例。3、当单例类被多个类加载器加载,如何还能保持单例?利用双亲委派机制,用多个类加载器的父类来加载单例类。4、为什么推荐使用枚举来实现单例?参考博客:为什么要用枚举实现单例模式(避免反射、序列化问题)_ITKaven的博客-CSDN博客.........

2022-07-02 22:53:34 120

原创 序列化与反序列化:基础原理

JAVA中的序列化和反序列化主要用于:(1)将对象或者异常等写入文件,通过文件交互传输信息;(2)将对象或者异常等通过网络进行传输。那么为什么需要序列化和反序列化呢?简单来说,如果你只是自己同一台机器的同一个环境下使用同一个JVM来操作,序列化和反序列化是没必要的,当需要进行数据传输的时候就显得十分必要。比如你的数据写到文件里要被其他人的电脑的程序使用,或者你电脑上的数据需要通过网络传输给其他人的程序使用,像服务器客户端的这种模型就是一种应用,这个时候,大家想想,每个人的电脑配置可能不同,运行环境可能也不同

2022-07-02 18:44:09 517

原创 LeetCode随思

1 寻找第K小的数,我们需要将从小到大的数组的前k-1个元素排除掉,那么最后处在元素最开始位置的就是第k小的数。2 二分查找在有序的数组中才可以这么用,或者至少这个数组在某一段阶段有序的。二分查找解题模板:1 2 3 4 5 6 7 8 9 target = 6;第一个大于等于,(>= 6),从左向右找。left = mid + 1; mid = Math.floor(left + (right - left ) / 2)第一个小于等于,(<=6),从右往左找,right =

2022-02-07 15:20:41 170

原创 安卓配置离线开发环境,以及用windows命令行打包。

最近在公司开发一个项目,由于是通过内网进行开发,所以没有办法,所有的安卓开发环境都需要离线配置。这边没有一个安卓开发的,所有的一切都要靠自己摸索,不过还好,经过一段时间的思索,在网上不断地查资料,终于完成了从开发环境的配置到windows命令行打包的整个流程。首先准备一台可以连接互联网的电脑,另一台是只能使用内网的电脑。以下用A电脑表示可以连接互联网的电脑,B电脑表示不能连接互联网...

2018-12-18 10:59:22 337

原创 安卓多模块开发的坑,

错误: 无法访问RxAppCompatActivity找不到com.trello.rxlifecycle2.components.support.RxAppCompatActivity的类文件谷歌在2018年年末放弃掉以compile的方式导入包的解决方式我把公共模块的这些全部换成implementation之后,其他模块的无法使用公共模块的这些包,后来经过不停的尝试,找到了原因,公共模...

2018-11-20 16:47:10 1151

空空如也

空空如也

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

TA关注的人

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