crazyandcoder

常用adb命令

1 无线连接手机不通过 USB 线连接手机//查询手机 IP 地址,wlan0就是返回的 IP 地址adb shell netcfg//通过 USB 线连接手机,查看设备号adb devices//开通端口,如果只有一台设备连接,直接绑定5555端口adb -s XXX(设备号) tcpip 5555 或 adb tcpip 5555//通过 IP 地址连接手机adb connect ip地址:5......

mac环境下反编译apk

1. 准备apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。dex2jar:将反编译后的classes.dex文件转化为.jar文件。jd-gui:用于将.jar文件转换成java代码。2. 安装apktool(1)//安装apkbrew install apktool(2)//检测是否安装成功,打印apktool的版本号即代表安装成功:2.6.......

Android 发布 aar 到 jitpack

1 前言之前发布过一个开源项目 citypicker一直是托管在 JCenter 上面的,但是前一段时间,JCenter 官方发布通告说 JCenter 将停止服务,所以我就找了一圈远程仓库,目前有 Maven Central,jitpack.io,准备想将项目发布到 Maven Central 的,但是弄了两天都没有弄好,配置太复杂了,所以就放弃了,选择 jitpack.io,因为它极其简单,只......

设计模式教程(12- 享元模式)

1 定义运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。2 UML 类图抽象享元角色(Flyweight):是所有的具体享元类的基类,为具体享元规范需要实现的公共接口,非享元的外部状态以参数的形式通过方法传入。具体享元(Conc......

设计模式教程(11-组合模式)

1 定义组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。组合模式一般用来描述整体与部分的关系,它将对象组织到树形结构中,顶层的节点被称为根节点,根节点下面可以包含树枝节点和叶子节点,树枝节点下面又可以包含树枝......

Android Jetpack教程(1-navigation)

1 简介Navigation 是一个导航组件,通过在 xml 中设置导航的开始和目的地,简化了 android 中的导航实现方式。......

设计模式教程(10-外观模式)

1 定义门面模式(Facade Pattern)又叫作外观模式,提供了一个统一的接口,用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构型设计模式。2 UML 类图门面模式主要包含2个角色。外观角色(Facade):也叫作门面角色,是系统对外的统一接口。子系统角色(SubSystem):可以同时有一个或多个 SubSystem。每个 SubSytem 都不是一......

Android Jetpack教程(概述)

1 jetpack 简介1.1 简介Jetpack 是一套库、工具和指南,可以帮助开发者更轻松地编写优质应用。这些组件可以帮助开发者遵循最佳做法、让开发者摆脱编写样板代码的工作并简化复杂任务,以便开发者将精力集中放在所需的代码上。官网链接。Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确......

Android自制HTTPS证书实现双向认证

1 前言前一阶段学习了服务端的知识,然后就写了一套接口,然后在阿里云上面租了一个服务器将服务部署到服务器上面,由于域名一直没有备案成功,所以只能通过 ip 的方式进行访问。通过 ip 的方式其实也没什么大不了的,前阶段工作中还简单实现了一套 HTTPDNS,原理其实也是通过 ip 直连的方式进行接口访问。本人是 Android 端开发,写了一套接口,然后就简单实现了一个 app,将前后端打通,练练......

计算机网络(http)

1 简介英文名为 HyperText Transfer Protocol,缩写:HTTP。中文名叫超文本传输协议。HTTP 协议,即超文本传输协议 (Hypertext transfer protocol)。是一种详细规定了浏览器和万维网 (WWW = World Wide Web) 服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。1989 年,CERN(欧洲核子研究组织)的 T......

计算机网络(https)

1 前言HTTPS 是一种通过计算机网络进行安全通信的传输协议,经由 HTTP 进行通信,利用 SSL/TLS 建立全信道,加密数据包。HTTPS 使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。TLS 是传输层加密协议,前身是 SSL 协议(SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持)。HTTPS 是在 HTTP 和 TCP 之间......

设计模式教程(9-桥接模式)

1 定义桥接模式 (Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体 (Handle and Body) 模式或接口 (Interface) 模式。2 UML 类图桥接模式包含如下角色:Abstraction:抽象类RefinedAbstraction:扩充抽象类Implementor:实现类接口ConcreteImpleme......

面向Android开发者kotlin教程(3-流程控制)

1 前言每一门语言它都会涉及到基本的流程控制,kotlin 也不例外,kotlin 常用的流程控制主要有分支语句,循环语句,跳转语句。2 分支语句在 kotlin 中分支语句主要是 if,when 语句。2.1 if在 Kotlin 中,if是一个表达式,即它会返回一个值。 因此就不需要三元运算符(条件 ? 然后 : 否则),因为普通的 if 就能胜任这个角色。if-else 语句是控制程序流程的......

设计模式教程(8-适配器模式)

1 定义适配器模式 (Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器 (Wrapper)。在适配器模式中可以定义一个包装类,包装不兼容接口的对象,这个包装类指的就是适配器(Adapter),它所包装的对象就是适配者(Adaptee),即被适配的类。适配器模式主要分为两大类:类结构型模式,对象结构型模式。适配器提供......

开源方案-将aar或jar发布到JitPack.io

1 前言之前发布过一个开源项目 citypicker一直是托管在 JCenter 上面的,但是前一段时间,JCenter 官方发布通告说 JCenter 将停止服务,所以我就找了一圈远程仓库,目前有 Maven Central,jitpack.io,准备想将项目发布到 Maven Central 的,但是弄了两天都没有弄好,配置太复杂了,所以就放弃了,选择 jitpack.io,因为它极其简单,只......

面向Android开发者kotlin教程(2-数据类型)

在 Kotlin 中,所有东西都是对象,在这个意义上讲我们可以在任何变量上调用成员函数与属性。 在本篇教程种我们简单介绍 Kotlin 中使用的基本类型:数字、字符、布尔值、数组与字符串。1 变量变量可以很简单地定义成可变 var 和不可变 val 的变量。1.1 val我们通过 val 关键字来申明一个不可变对象。这个与 Java 中使 用的 final 很相似。一个不可变对象意味着它在实例化之......

面向Android开发者kotlin教程(1-Hello World)

1 环境搭建“工欲善其事,必先利其器”,学习 kotlin 我们有很多方式,通过命令行的方式,通过 IDE 的方式等。我们分别通过这两种方式进行演示一个 Hello World 程序。1.1 命令行首先我们要安装命令行的工具,通过以下命令进行安装,首先打开终端,输入以下命令:$ curl -s https://get.sdkman.io | bash$ sdk install kotlin通过以上......

面向Android开发者kotlin教程(开篇)

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。......

设计模式教程(7-代理模式)

在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起到中介的作用。静态代理模式 (Proxy Pattern) :给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英 文叫做 Proxy 或 Surrogate,它是一种对象结构型模式。......

设计模式教程(6-装饰模式)

1 定义装饰模式 (Decorator Pattern) :动态地给一个对象增加一些额外的职责 (Responsibility),就增加对象功能来说,装饰模式比生成子类实现更为灵活。其别名也可以称为包装器 (Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。根据翻译的不同,装饰模式也有人称之为“油漆工模式”,它是一种对象结构型模式。2 UML 类图在装饰器模式中的角色有:• 抽象构......

设计模式教程(5-建造者模式)

1 定义造者模式 (Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。Builder 模式,中文翻译为建造者模式或者构建者模式2 UML 类图3 优缺点3.1 优点在建造者模式中, ......

设计模式教程(4-抽象工厂模式)

前言产品等级结构产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL 电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体品牌的电视机是其子类。产品族在抽象工厂模式中,产品族是指由同一个工厂生产的,位于不同产品等级结构中的一组产品,如海尔电器工厂生产的海尔电视机、海尔电冰箱,海尔电视机位于电视机产品等级结构中,海尔电冰箱位......

设计模式教程(3-工厂方法模式)

1 定义在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。2 UML 类图简单工厂模式包含如下角色:(1)Factory:抽象工厂角色负责定义创建产品对象的公共接口(2)ConcreteFactory:具体工厂角色工厂角色负责实现创建所有实例的内部......

设计模式教程(2-简单工厂模式)

1 定义简单工厂模式 (Simple Factory Pattern):又称为静态工厂方法 (Static Factory Method) 模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。2 UML 类图简单工厂模式包含如下角色:(1)Factory:工厂角色工厂角色负责实现创建所有......

设计模式教程(1-单例模式)

1 定义单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。2 UML图3 实现方式目前来讲,单例模式主要有以下五种实现方式:3.1 饿汉式饿汉式是一种比较简单,比较好的实现方式。它的实现方式比较简单,就是在类加载的时候,instance 静态实例就已经创建并初始化好了......

设计模式教程(开篇)

前言在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。设计模式(D......

2020年疫情下的Android跳槽之路

写在前面的话我是14年毕业的,毕业一直做Android相关方面的开发,14年到18年经历了几家小公司,前后都倒闭了,可谓是一直颠簸流离,漂泊不定。在18年来到上海寻求发展,以前一直呆的是小公司,这次就想找个大公司,想稳定一点,同时大公司技术底蕴也比较强,想多学习学习,提升自己。可参考我以前的求职面试......

一篇文章搞懂android存储目录结构

前言前两天因为开发一个 app更 新的功能,我将从服务器下载的 apk 文件放在了内部存储目录(测试手机为小米,路径为:data/user/0/packagename/files)下面,然后安装的时候一直安装不了,提示解析包出错。后来查询发现,安装 apk 是调用了 PackageInstaller,没有相关权限,这个无法获取内部路径,所以会安装不了。借机也复习了一遍 Android 下面存储相关......

2018年6月上海面试经历

前言首先介绍一下我的经历:本人 14 年毕业,在学校里面自学 Android 开发,在 cz 呆了三年,小城市,IT 不发达,倒闭了 2 家公司,然后杭州谋求发展,可参考以前写的一篇求职文章《杭州找Android工作的点点滴滴》,呆了一年,又倒闭了,哎,一言难尽呐!上个月,也就是 6 月份从杭州来到......

2017年4月份杭州面试题

2017年4月杭州面试问题关于人文方面的问题先介绍一下你自己?你有什么兴趣爱好?你平常空闲时间会干什么,看哪些书,有什么心得体会?如果面试过了的话,就会问你的期望薪资,然后就开始各种压榨你。关于 Java 方面的问到的知识点面向对象的三大特性,如何理解其中的多态?JVM 的内存模型?String、S......