周康的博客

一蓑烟雨任平生


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Java反射

发表于 2018-09-01 | 分类于 Java

什么是反射

在运行状态中,对于任意一个的类,都能通过反射知道或者获取这个类的所有属性和方法,不管是public还是private。反射能把Java类钟的各种成分映射成一个个Java对象,本质就是获取类的字节码文件,即.class文件,获取/调用类的属性或者方法。

阅读全文 »

Android热修复方案(二)实践篇

发表于 2018-08-20 | 分类于 Android

概述

经过上一轮《Android热修复方案(一)理论篇》关于热修复的理论介绍,这篇重点实践一下该理论。这是基于Tinker的热修复。

阅读全文 »

Android热修复方案(一)理论篇

发表于 2018-08-13 | 分类于 Android

概述

热修复是我学习Android中早就定下的计划,过往的一些项目中,从来没涉及过有关热修复的需求,最多只是更新了一下.so库而已。所以今次要结合理论和实践来更加深入了解一下热修复。
《Android热修复方案(二)实践篇》

阅读全文 »

GreenDao的使用(二)

发表于 2018-08-06 | 分类于 Android

概述

上篇的《GreenDao的使用(一)》是大概介绍了一下GreenDao的理论知识,这次尝试用GreenDao做一些实际项目中的需求。更多的是为展示GreenDao的优点。

需求分析

实际使用需结合具体的需求,如图:
需求
这是一个简化的公司关系图,需要注意的是一对一和多对多的关系。通过查询一个员工,可以关联到该员工的领导以及工牌信息。就是今天主要做的功能。

阅读全文 »

GreenDao的使用(一)

发表于 2018-08-05 | 分类于 Android

概述

目前GreenDao是最佳的ORM的方案,无论从使用复杂程度还是效率方面,GreenDao的表现都非常出色。当然,每个优秀的框架涉及的知识点或者设计模式都会相对复杂一点,以至于后来的开发人员使用的时候才那么容易上手。

GreenDao介绍

GreenDAO是一个开源的Android ORM(“对象/关系映射”),通过GreenDao,我们可以更快速的操作数据库,我们可以使用简单的面相对象的API来存储,更新,删除和查询Java对象。

优缺点

  • 高性能
    官方统计图:
    来自网络
  • 易使用
  • 最小的内存消耗;
  • 数据库加密:greenDAO支持SQLCipher,以确保用户的数据安全;

主要成员介绍

  • DaoMaster:继承自AbstractDaoMaster,提供静态方法删除或者创建数据库,基于DatabaseOpenHelper实现
  • DaoSession:管理这Dao对象。
  • EntitiesDao:Entities的操作类,可对Entities进行增删改查等操作
  • Entities:可持久化对象。通常, 实体对象代表一个数据库行使用标准 Java 属性(如一个JavaBean )。
    阅读全文 »

IPC的实现:AIDL

发表于 2018-07-28 | 分类于 Android

概述

AIDL是Android Interface Definition Language的缩写,在某种意义上讲,AIDL其实是一个模板,有规范和约束的作用。实际上起作用的是根据AIDL而生产的实例代码。
AIDL与Java语音的接口十分的相似,也它也有一些几点特点:

  1. AIDL支持的数据格式支持8大基本数据类型(byte、char、short、int、long、float、double、boolean,String,CharSequence),支持的空间数据结构有List和Map。
  2. 数据流向标记。in、out、inout。in 表示数据只能由客户端流向服务端, out 表示数据只能由服务端流向客户端,而 inout 则表示数据可在服务端与客户端之间双向流通。
  3. 手动导包。
    在Android中,跨进程通信采用的Binder机制,而基于Binder来实现跨进程的方式通常是采用AIDL和Massenger。
    两者的关系是:AIDL是基于Messenger,而Messenger是基于Binder的。
    关于更多关于Binder机制的知识可参看《IPC机制》
    阅读全文 »

IPC机制

发表于 2018-07-15 | 分类于 Android

概述

IPC:Inter-Proscess Communication,意为进程间的通信。在Android平台,跨进程通信的方式有好几种,分别是:管道,消息队列,共享内存,信号量,socket以及Binder等。
同时这也是Linux的跨进程通信方式。但是今天,主要分析的是Binder机制。

阅读全文 »

Android中图片的三级缓存

发表于 2018-07-05 | 分类于 Android

概述

从用户体验方面来说,我们不能每次加载图片都从网络上下载。但针对于Android应用,绝大多数的内容都是通过图片来展示的。不加以处理的话很容易引起OOM。Android图片的三级缓存机制就显得十分重要了。
今天记录下Android的三级缓存。

原理

三级缓存的原理示意图如下:

阅读全文 »

ADB相关

发表于 2018-06-20 | 分类于 Android

概述

ADB,即 Android Debug Bridge,意译过来就是安卓调试桥。对Android的调试有很大的作用,今天着重介绍几个ADB常用的命令。

原理

ADB工作方式比较特殊,利用Socket让IDE和device通讯,默认情况下adb会daemon相关的网络端口。所以是基于TCP/IP进行通信的。

阅读全文 »

Flutter开发(一):环境配置

发表于 2018-06-09 | 分类于 Android

概述

Flutter的Beta1在今年2月份正式发布,现在开始尝试接触一下可以说刚刚好,快速拥抱新技术目前阶段必须要做的,无论是Kotin,还是Android O,第一时间尝鲜总归不是一件坏事。尽管Flutter框架还不算成熟,离实际的开发可能还有点距离,但是它是未来发展的一种趋势,就是因为它跨平台。

Flutter优点

为什么要学习Flutter,跨平台是其中的一个原因,另外Flutter还有热重载(修改后即时刷新),各种灵活的widget(相当于View),能保持几乎与原生一样的体验。无论你是Android开发还是iOS开发,我们可共用一套UI了。一波666送给它。。。

下载

Flutter SDK可以去Fluter github里面点击下载。
也可以在GIT的命令面板里输入:

git clone -b beta https://github.com/flutter/flutter.git

将Flutter克隆下来。

阅读全文 »

123…8
周  康

周 康

猥琐发育,别浪!

76 日志
6 分类
36 标签
GitHub E-Mail WeiBo Skype
© 2020 周 康
全站字数统计: