MY Blog

Thinking will not overcome fear but action will.

Android异步技术

技术考量和源码探究

串行:依次执行多个线程任务 。并行:一起执行多个线程任务(或者说给每个线程分配不固定的执行时间)。 前言 Android平台原生就提供了非常丰富的异步处理技术,选择时需要考虑具体业务需求而定 但以下这些都是我们必须考量的范畴 1.尽量使用更少的cpu和内存 2.为应用提供更好的性能与更快的响应 3.实现使用复杂性低 4.代码是否符合规范是否易于维护 正文 Thread...

  Android安全性分析

  安全永远是一个重要的主题

网络安全 建议与服务器通信使用HTTPS协议 HTTPS=HTTP+SSL(安全套接层) 提供SSL数字证书 重点在SSL是如何加密保证连接不会被第三方截取后得到明文 本质在于 如何保证双方协商对称加密算法的安全 HTTPS采用运行时生成随机数决定对称算法来保证每个客户端的对称密钥都不同 但是密钥和对称算法都需要服务端告诉客户端 如何保证这个过程的安全? 服务端使用非对称算法的私...

  自定义线程池管理器

  实现高并发控制

前言 最近老是听起同学说服务端的高并发,那么移动端如果出现高并发我们又如何处理呢?抱着这样的疑问我模拟了一个高并发场景 模拟场景 for (int i=0;i<100;i++){//高并发 final int finalI = i; Thread thread =new Thread(){ @Over...

JAVA线程安全和锁的原理

Synchronized和Lock

本文首次发布于 My Blog, 作者 @陈鸿(My) ,转载请保留原文链接. 什么是线程安全 多线程访问同个资源时,会导致资源出现异常 需要对这种情况进行管理 通常多线程访问时,采用加锁机制能妥善管理资源 ps:线程中有个变量为ThreadLocal 是线程的私有数据 主要用于线程改变内部的数据时不影响其他线程(自身的副本),使用时需要注意static。 ps:clone...

AOP机制在Android的使用

  之注解实现

面向切面编程(Aspect Oriented Programming)。 AOP可以实现把多个业务模块的代码抽取出来实现日志记录,性能统计,安全控制,异常处理等功能。 基本概念 1.横切关注点 经常发生在业务逻辑的相同地方 例如日志记录等 2.核心关注点 业务逻辑的主要流程 3.连接点 核心关注点可能存在横切关注点的地方 4.通知 连接点执行的动作 通知有三种类型...

回顾基础-集合框架

  源码解析

Java 提供的 集合类都在 Java.utils 包下,其中包含了很多 List, Set, Map, Queue 它们的关系如下面这张类图所示: 集合框架是一个代表并能操作集合的框架,它包括 1.接口 接口通常用来形成规范 2.实现类 集合接口的具体实现,是重用性很高的 *数据结构 3.算法 用来根据需要对实体类中的对象进行计算,比如查找,排序 迭代器 可以看到,...

Gradle多渠道打包

  App打包上传到各大应用市场

前言 今天新项目上架,在gradle打包上传到各大APP市场后,因为上传的市场太多 需要构建多渠道自动化打包 解决 我们在项目中经常会引入一些统计sdk 需要为不同的渠道包修改渠道信息 便于统计 可以在配置清单中修改为自定义值,这里以友盟为例 <meta-data android:name="UMENG_CHANNEL" android:value="${UM...

  利用 LeakCanary 检测内测泄漏

  原理解析

前言 今天介绍一种简单直接的检测内测泄漏的方法:LeakCanary 就是这货: 正文 我最近的项目中,退出登录后(跳转到登录页),发现首页控制器没有被销毁,依旧能接收通知。 很明显发生了循环引用导致的内测泄漏。 接下来就使用 LeakCanary 来查看内测泄漏了。 运行程序 果不其然,LeakCanary的进程中显示了内存泄漏的一些信息 references c...

ReactNative初解

  前端和Android结合的浪潮

前言 1.详细了解 JavaScript 2.详细了解 React 3.详细了解 React Native 4.其他(比如说 Redux) 正文 在项目中最常遇到的情况是为 view 设置圆角、描边,以及为 文本控件 添加本地化字符串。 JavaScript 先来看看设置圆角、描边 extension UIView { @IBInspectable var corn...

    RestFul理解

  身边的概念

REST是英文representational state transfer的简写-翻译为表述性状态转移,它是一种设计风格,不是一种标准,是一种思想,在android中具体体现为使用Retrofit框架提供的运行时注解 提供restful风格的api 1.面向前台 前台是与访问请求者交互的角色,包揽了所有与用户交互的功能 2.面向资源 随着业务模型的扩增,不同的职务需要有专人...