C1☆ Blog

Thinking will not overcome fear but action will.

CAS

并发技术

CAS 我们都知道线程安全的实现有两种方法: 互斥同步 非阻塞同步 一般,互斥同步在编程上采用synchronized关键字来进行同步。但是由于互斥同步在多线程并发的情况下存在线程阻塞、唤醒以及用户态和内核态之间的切换所引起的性能问题。 从处理方式上来说,互斥同步属于一种悲观的并发策略,总是认为只要不去做正确的同步措施(例如:加锁),那就肯定...

GreenDao

数据库框架

GreenDao 简述 当我们编写好了Entity类之后,会自动生成DaoMaster、DaoSession、Entity Dao这三个核心类。 //生成数据库文件,名为students-db DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "xxx.db", null); SQLiteDatabase d...

Mutidex

framework

Mutidex 分包 apk --AndroidManifest.xml --R // 资源文件 --resource.arsc // 资源索引 --assets // 不进行编译加工的原生文件 --lib // apk的so库 --META-INT...

ActivityThread

framework

ActivityThread ActivityThread代表一个应用进程的主线程(对于应用进程来说,ActivityThread的main函数确实是由该进程的主线程执行),其职责就是调度及执行在该线程中运行的四大组件 关键的方法 1、main()与systemMain() 这个两个方法都是ActivityThread的入口,所执行的主要供作就是实例化一个Activity示例并构建一个An...

多进程编程

IPC

关于Android应用多进程 android:process 应用实现多进程需要依赖于android:process这个属性 适用元素:Application, Activity, BroadcastReceiver, Service, ContentProvider。 通常情况下,这个属性的值应该是”:“开头。表示这个进程是应用私有...

EventBus

响应式框架

EventBus EventBus事件主线由四大部分组成: 1) Publisher发布者:用于分发我呢吧的Event事件,在EventBus中通过post方法进行分发传送 2) Subscriber订阅者:用于接收我们的事件,我们在订阅事件中处理我们接收的数据 3) Event事件:任何一个对象都可以作为事件,比如任何字符串,事件是发布者和订阅者之间的通信载体 4) EventBus:类...

http协议续集(二)

网络协议

HTTP续集(二) 前言 补充上一篇笔记的一些常见概念 报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。 报文包含了将要发送的完整的数据信息,其长短很不一致。 实体(entity)作为请求或响应的有效载荷数据(补充项)被传输其内容由实体首部和实体主体组成。 MIME 用于发送多种数据的多部分数据集合,它允许处理文本,图片,视频等多个不同类型...

proguard

混淆

Proguard Proguard被人们熟知的是它的混淆功能,根据Proguard帮助文档的描述,Proguard可以对Java class 文件进行shrink,optimize,obfuscate和preveirfy。obfuscate(混淆)只是其中之一。简要的介绍下这四个功能: 压缩(Shrink): 检测和删除没有使用的类,字段,方法和特性 优化(Optimize) : ...

http协议

HTTP HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,...

volley-dispatcher源码解析

网络框架

volley dispatcher /** * Starts the dispatchers in this queue. */ public void start() { // Make sure any currently running dispatchers are stopped. stop(); /...