Android设计模式-观察者模式
一. 前言1. 定义Observer Pattern:定义对象间的一种一个对多的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。
观察者模式又被称作发布/订阅模式。
二. 代码实战1. 概况很多人们都在等待放假的信息,它们作为观察者,当放假的信息一出来的时候就需要知道放假的信息。
2. 代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192public class MyClass { /** * 抽象的观察者 */ public interface Observer{ /** * 收到信息 * @param message */ void ...
Android设计模式-模板模式
一. 前言1. 定义TemplateMethod:定义一个模板结构,将具体内容延迟到子类去实现。
2. 主要作用在不改变模板结构的前提下在子类中重新定义模板中的内容。
注意:模板方法模式是基于 继承 的。
3. 解决的问题① 提高代码复用性:将相同部分的代码放在抽象的父类中,而将不同的代码放入不同的子类中。
② 实现了反向控制:通过一个父类调用其子类的操作,通过对子类的具体实现扩展不同的行为,实现了反向控制 & 符合 开闭原则。
二. 实际例子1. 概况背景:小成希望学炒菜:辣椒炒包菜 & 蒜蓉炒菜心。
炒菜的步骤:倒油 -> 热油 -> 放蔬菜 -> 放调味品 -> 翻炒。
2. 代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889public class M ...
Android随笔-新的方向
一. Android6.0 新特性1. 运行时权限2. 电源管理① App Standy模式
② Doze瞌睡
3. 指纹识别4. App link二. 最新的Android相关技术1. Hybrid2. 插件化3. Hot patch4. React Native5. Kotlin6. Flutter
Android随笔-项目依赖
一. 前言1. Android依赖中的三种方式
Library Dependency:添加静态库依赖。
Jar Dependency:添加Jar包依赖。
Module Dependency:添加模块依赖。
2. 部分引用方法列表① compile fileTree(dir:'xxx',include:['*.jar'],".xxx")
某个目录下所有符合扩展名的文件作为依赖。
② compile 'com.xx.xx:projectName:version'
配置Maven库作为依赖。
③ compile files('xxx.jar')
配置某个 jar包 作为依赖。
④ compile project(':LibraryModule')
配置另一个Module作为本Module的依赖,被依赖的Module必须导入到当前工程中。
二. 方便的aar引用1. aar是什么?AAR(Android Archive)包是一个Android库项目的二进制归档文件。
2. aar 和 jar ...
Android随笔-了解NDK开发
一. 前言1. NDK && JNI ?
JDK:Java Development Kit
SDK:Software Development Kit
NDK:Native Development Kit
JNI:Java Native Interface
NDK 是 Android平台用来支持 C/C++ 开发的。
2. 使用 NDK 的优劣① 优点:
代码的保护。apk的java层代码很容易被反编译,而 C/C++库 反汇难度较大。
可以方便地使用现存的开源库。很多现存的开源优秀库都是用 C/C++ 代码编写的。
提高程序的执行效率。将要求高性能的应用逻辑使用 C开发,从而提高应用程序的执行效率。
便于移植。用 C/C++ 写的库可以方便在其他嵌入式平台上再次使用。
② 缺点:
开发麻烦。
调试不方便。
难度相对较高。
③ 注意:
要不要使用?什么情况下使用它?
使用 NDK 大部分情况是需要将一些已有的 C函数 移植到 Android平台 所选择的快捷方法,而不是作为提高代码效率的手段。
3. 学什么?
一种是已经编译好的 .so 动态库。
一种是使用 ...
Android随笔-了解Gradle
一. 前言1. Gradle是什么?Gradle是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具。它使用一种基于 Groovy 的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于 Java,Groovy 和 Scale,计划未来将支持更多的语言。
2. Gradle 的重要性Coding 只是软件开发的一部分
编译源代码
运行单元测试和集成测试
执行静态代码分析
生成分析报告
创建发布版本
部署到目标环境
部署传递过程
执行冒烟测试和自动功能测试
二. 文件解析1. 项目-gradle-gradle-wrapper.properties文件声明了gradle的目录与下载路径以及当前项目使用的gradle版本。默认的路径我们一般不会更改。
2. Gradle同步的文件存储的路径
3. 项目-settings.gradle文件声明当前项目中含有什么module。如果有多个module会以‘,’分开,如:include ':app',':app2'。
4. 项目-build.gradle文件
...
Android随笔-接入百度地图
一. 选地图定为哪家强?1. Google Map
gps坐标系,最稳定,卫星地图精细。
但是在中国服务器被墙。
且手机必须要有Google Service Framework。
在中国不翻墙不root不可用。
2. 百度Map 和 高德Map
百度,支持全球定位,功能迭代较快,地图数据加载很快。卫星地图不精细,很多户外地区放大没卫星数据。
高德,稳定性不错,支持全球定位。卫星地图不精细,很多户外地区放大没卫星数据。
百度,高德等国内地图都只有中国的数据。
二. 如何使用百度地图1. 步骤
找到百度地图开发者平台。
申请秘钥。
根据说明集成代码。
2. 实际开发步骤截图示意① 打开官网,将鼠标移动到开发文档,选择 Android地图SDK。(在此之前,你需要登录百度账号,且成为开发者)
② 创建应用,应用类型选择AndroidSDK。
③ 填写 SHA1 和 包名,获取SHA1的方法在这里,我是在AndroidStudio中操作的。
④ 提交之后就可以看到我们的应用了。
3. 使用百度Map做一个简单的定位① 参考官方文档
Android地图SDK 和 Android定 ...
Android多进程
一. 前言1. 什么是进程?
就是运行的一个程序。
每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销,一个进程包含1~n个线程。
进程是资源分配的最小单位。
一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。
2. 什么是多进程?多进程是指操作系统同时运行多个进程。
3. 进程如何创建?1android:process
4. 进程的等级
前台进程
可见进程
服务进程
后台进程
空进程
二. 多进程1. 什么情况下使用多进程?Android中一个进程的内存是有限的,当需要更多的内存时。
2. 使用多进程需要注意哪些地方?多个进程可能会导致全局初始化操作多次执行。
1234567891011public class MainApplication extends Application { @Override public void onCreate() { super.onCreate(); //全局初始化操作 //多个进程会多次进入该方法,造成资源浪费 //可以通过判 ...