- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 通过Magisk安装Charles证书到/system
抢两天想到将Charles的证书放到/system目录,不然一旦开启了抓包,其他应用就会无法访问网络,不想单独为了公司的域名单独配置Charles😅因为我的手机是Google Pixel 4XL, Android 12 通过 Magisk 24.3 实现了root,所以一开始的想法是通过adb(这里adb被赋予了root权限)将Charles的证书移动到/system/etc/security/cacerts目录,想着很简单,毕竟adb是有权限的。结果很打脸,出现了Read only file syst
2022-04-18 14:16:58 6241 6
原创 Could not find aapt2-proto.jar
今天一早上班正常打开项目,出现这样的错误:发现是project目录下build.gradle文件出现的问题:buildscript{ respsitories{ google() //一定要放在第一个 jcenter() ... } dependencies { classpath 'com.android.tools.build:gradle:3.2.1'...
2018-10-25 11:11:17 3682 3
原创 设计模式普及之策略模式
定义 将一系列的算法封装起来,而且可以相互替换。让算法独立于使用它的客户而独立变化。使用场景针对同一问题有多种处理方式,而仅仅是方式有差异。需要安全的封装多种同一类型的操作时。出现同一抽象类有多个子类,需要使用switch语句或者if语句选择时。举例 其实有很多例子,我这里想到买菜的场景。 来看代码简单实现:public interface ICalculat...
2018-09-15 23:02:51 124
原创 设计模式普及之抽象工厂模式
本文是读《Android源码设计模式解析与实战》后笔记 抽象工厂的定义 为创建一组相关或者是相互依赖的对象提供一个借口,而不需要指定它们的具体类。抽象工厂的使用场景 一个对象族有相同的约束时可以使用抽象工厂模式。下面简单实现,上代码:public abstract class MacBookComputer { public abstract ICpu s...
2018-08-12 17:58:58 171
原创 设计模式普及之工厂方法模式
本文是阅读《Android 源码设计模式解析与实战》后的笔记定义 定义一个用于创建对象的接口,让子类决定实例化类别。使用场景 某些需要生成复杂对象的时候,具体场景还是需要开发者进行权衡。简单示例:public abstract class Computer { public abstract void complete();}public cl...
2018-08-12 14:18:50 123
原创 android无法删除SD卡文件
近期手机系统升级到了8.0,偶然发现我的音乐app无法删除外部存储的媒体文件,于是来研究下是什么回事。 我最初使用的方法是File.delete()方法,日志打印一致的返回false,后来一直在试使用ContentResolver.delete(),却还是无法删除文件,只能删除ContentProvider媒体库的数据,再次扫描又会出现。显然错误的方向让我浪费了好长时间。后来我就在想...
2018-08-08 16:13:07 6886
原创 d2j-dex2jar在Mac上遇到的权限问题解决方案
近期想看看反编译kotlin最终生成的代码,但是遇到一个权限问题在网上找了几个博客都是这样的操作:sudo chmod +x d2j_invoke.sh但是我运行之后还是不行,依然是权限问题。后来找到一个解决方法:chmod a+x *.sh参考: https://stackoverflow.com/questions/30875382/cannot-use-dex2...
2018-07-31 11:14:18 2333
原创 设计模式普及之原型模式
原型模式的定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式的使用场景:1.类初始化需要消耗非常多的资源,包括数据、硬件资源等;2.通过new产生一个对象需要非常繁琐的数据准备或访问权限;3.一个对象需要提供给其他对象访问,而且各个调用者可能度需要修改其值时。简单实现的方式:实现Cloneable接口,重写clone方法public cl...
2018-07-23 09:01:05 116
原创 设计模式之Builder模式简单普及
Builder模式介绍Builder模式时一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建的过程和部件都可以自由扩展,两者之间的耦合页降到最低。Builder模式的使用场景相同的方法,不同的执行顺序,产生不同的事件结果时。多个部件或零件,都可以装配到一个对象...
2018-07-01 14:16:21 174
原创 设计模式之单例模式实现的几种方式
单例模式的定义 确保某个类有且只有一个实例,并且能够自行实例化提供给调用者。单例模式的使用场景 通常有以下的原因会让你使用单例: 1.这个对象创建需要消耗很多的资源; 2.这个对象不能存在多个对象,多个对象容易造成数据错误或者其他原因。单例模式的特点 1.构造函数不对外开放,一般为private; 2.通过一个静态方法或者枚举返回单例对...
2018-06-09 16:31:49 155
原创 软件设计模式之路-面向对象的六大原则
记录《Android 源码设计模式 解析与实战》的读后理解ps:基本直接搬书单一职责原则开闭原则里氏替换原则依赖倒置原则接口隔离原则迪米特原则单一职责原则 我想大部分从事编码的人至少都听说或者明白这个原则,就是一个类能够让它修改的只有一个原因。如果我们将所有功能都写在一个类中,这样的软件后期基本上是要被咔嚓的。开闭原则 软件中的对象(类、...
2018-06-02 19:29:51 526
原创 DataBinding In Kotlin编译不通过
今天在使用Kotlin与DataBinding时,出现了如下图的错误 顿时一脸蒙蔽,出现循环的依赖,什么鬼?google了一下,发现了在stackoverflow上有一位前辈遇到了同样的问题,解决方案如下: 1.在项目的build.gradle中配置,如果你的版本是1.1.2-4的版本换成1.1.2-2的版本buildscript { ... dependencies {
2017-05-26 15:12:45 2247
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人