自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 EventBus从应用到源码分析

EventBus从使用到源码分析 EventBus是greenrobot在Android平台发布的以订阅-发布模式为核心的开源库。EventBus的库主要用来进行各个组件,各个线程之间的通信。在Android中五大组件之间的通信可以采用Intent,Handler,广播等。但是这样会使得代码复杂,使用EventBus可以极大简化组件之间的通信,而且效率高。 EventBus不是单例模式,我

2017-12-13 21:32:34 217

原创 iic子系统

I2C子系统分析 firefly-3399 linux内核版本:4.4 参考博客: https://www.cnblogs.com/deng-tao/p/6130080.html http://blog.csdn.net/w89436838/article/details/38660631 http://blog.csdn.net/wangpengqi/article/detai

2017-12-12 10:32:55 413

原创 phy子系统分析

linux PHY 驱动 firefly-3399 linux内核版本:4.4 MAC(Media Access Control) 1.网络硬件部分 2.驱动部分参考博客 http://www.jianshu.com/p/77bb0ba1768c http://www.360doc.com/content/13/0717/16/2768962_3006235

2017-12-12 09:35:47 2327

原创 Android网络框架

从代码学习Android网络框架 代码开源地址: https://github.com/hehonghui/simple_net_framework 作者博客地址: http://blog.csdn.net/column/details/simple-net.html SimpleNet网络框架 SimpleNet是一个简单的Android网络框架,该框架的结构类似Volley,该框

2017-11-25 23:02:49 255

原创 机器学习(3) ---- 回归问题 聚类问题

机器学习(3) —- 回归问题 聚类问题 个人博客,欢迎参观:http://www.ioqian.top/参考博客: https://www.jiqizhixin.com/articles/2017-05-20-31.回归方法   回归方法是一种对数值型连续随机变量进行预测和建模的监督学习算法。使用案例一般包括房价预测、股票走势或测试成绩等连续变化的案例。1.1 Logic Regressi

2017-11-14 21:12:36 572

原创 机器学习(2) ---- 分类问题

机器学习(2) —- 分类问题 个人博客,欢迎参观:http://www.ioqian.top/1.决策树(Decision Tree)参考博客: https://www.cnblogs.com/leoo2sk/archive/2010/09/19/decision-tree.html   根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题

2017-11-14 21:10:27 1655

原创 机器学习(1) ---- 机器学习算法综述

机器学习(1) —- 机器学习算法综述 个人博客,欢迎参观: http://www.ioqian.top/about/ 本着拓展知识的态度看了机器学习的一个视频,把自己的理解做个总结,分为3部分 1.机器学习算法分类,主要看分类,回归,聚类 2.分类问题 3.回归问题和聚类问题(因为实验室是做图像处理的,主要学习分类问题)推荐博客: http://blog.csdn.net

2017-11-14 21:07:42 2033

原创 gradle 知识(2) -- groovy语法

gradle 知识(2) – groovy语法参考博客 http://www.jianshu.com/p/e8dec95c4326 http://ifeve.com/groovy-syntax/ Groovy 是 Apache 旗下的一门基于 JVM 平台的动态/敏捷编程语言,在语言的设计上它吸纳了 Python、Ruby 和 Smalltalk 语言的优秀特性,语法非常简练和优美,开发效

2017-10-22 12:37:13 187

原创 gradle 知识(1) -- gradle构建工具

gradle 知识(1) – gradle构建工具 本文作为gradle的第一篇,gradle的重要性就不用说了。接下来介绍一下本系列博客的主要思路和参考内容,初步的想法是分五篇来进行介绍gradle(1) gradle构建工具 (2) groovy语法 (3) gradle基本知识 (4) gradle 插件 (5) android Studio 中使用参考书籍或者文档或博客 1

2017-10-22 11:04:34 316

原创 app版本更新

Android Studio使用gradle实现VersionCode VersionName自动更新注意,使用Android Studio加gradle实现,这个也不算要求了,基本上没多少人使用Eclipse1.基本思路 a.新建一个配置文件来存储versionCode和versionName b.app/build.gradle中实现自动更新和读取当前版本的函数 c.当需要更新版本时,执行一

2017-10-19 14:52:09 402

转载 constraintLayout

ConstraintLayout(约束布局)从开始学习android,刚接触的Android studio只有四种默认布局,新建一个项目的初始默认布局是RelativeLayout。但是一个月后就有了默认的ConstraintLayout但是一直没有去使用过,抽个一晚上的时间学习一下,总结一下。我可以不精通,但是我要知道它是什么东西~~~三个问题1.ConstraintLayout优点 2.Con

2017-10-13 22:38:38 1147

原创 QRcode

android-zxingLibrary 二维码扫描和生成本文主要有两个内容 1.二维码是什么? 2.android项目中借助android-zxingLibrary快速实现二维码功能1.二维码是什么?参考博客地址: http://blog.csdn.net/u012611878/article/details/53167009 http://www.jianshu.com/p/f68

2017-10-12 21:47:12 3071

原创 HandlerThread 总结

HandlerThread我们对于HandlerThread的分析从下面三个问题来看1.HandlerThread是什么?2.HandlerThread怎么用?3.HandlerThread的源码?1.HandlerThread是什么?HandlerThread本质就是一个普通的Thread,里面建立了Looper 我们一般使用Handler最多的是在主线程(UI线程)中来做UI改变的工作,这个

2017-10-08 12:00:34 178

原创 Git使用大全

Git使用大全1.Git起源      Git的创始人是Linus Torvalds,当时创建Git的原因是因为要管理庞大的linux内核源码(刚开始使用BitKeeper,由于某种原因最后不能被免费使用了)所以决定开发一套自己的版本控制系统,Linus Torvalds仅仅花了两周时间就完成了Git的第一版,Linuxs对Git的要求是...

2017-09-25 23:20:13 1366

原创 gradle使用技巧

gradle使用技巧1.全局配置文件 在Android studio使用过程中,一个project会有多个app,这时候每个app的版本号编译版本等都需要统一,要做到在后续过程中修改一处改变多个app的编译信息,这个时候就要使用全局配置全局gradle配置文件主要有3步1.新建config.gradle文件,其他地方都引用这个问件中的配置信息2.在根目录的build.gradle中包含上面

2017-09-24 22:14:51 151

转载 Context细节

Context细节 Context相信所有的Android开发人员基本上每天都在接触,因为它太常见了,Context可以用来启动服务,发送广播,弹出对话框,开启一个活动,获取资源等等。但是Context同时也包含了很多细节,获取Context的方法多种多样?得到不同的Context完全相同吗?Context的正确用法?下面我们就详细总结一下,为什么是总结,因为这个博客很多了大多数都没有写的很全面

2017-09-21 16:25:42 191

原创 设计模式 ----- 设计模式总结

设计模式 —– 设计模式总结设计模式系列源码: https://github.com/liloqian/DesiginModeDemo1.什么是设计模式 模式是指在某情形下,针对某问题的某种解决方案。 情景     应用某个模式的情况,这是不断出现的情况 问题     在某情景下达到的目标,也可以是某情景下的约束 解决方案     一个通用的设计,用来解决约束,达到目

2017-09-20 23:01:38 213

转载 聚类FCM算法

聚类FCM算法个人博客,想要搭建个人博客的可以进来看看: http://www.ioqian.top/ 在科研生活中,学习算法的时间不是很多,毕竟不是主要搞算法的,但是作为读研狗毕竟还是要毕业写论文的,算法还是要慢慢积累。 学习算法的目的很清晰,主要分为三点:一是扩展知识面,在这个AI如此火爆的年代,搞技术的出去别人聊AI要能听得懂,明白一些算法的思路才可以和别人正常交流;二是活跃思维,学

2017-09-20 15:30:51 8922 2

原创 设计模式-----迭代器模式和组合模式

设计模式—–迭代器模式和组合模式迭代器模式 , 提供一种方法顺序访问一个集合对象中的各个元素,而又不暴露其内部的表示组合模式 ,允许你将对象组合成树结构来表现“整体/部分”层次结构。组合可以让客户以一致的方式处理个别对象以及对象组合。设计模式系列源码 : https://github.com/liloqian/DesiginModeDemo1.迭代器模式 背景,在我们的code中,会使用各种各样

2017-09-18 22:41:07 402

原创 设计模式-----代理模式

设计模式—–代理模式代理模式(静态),为另一个对象提供一个替身或占位符以控制对这个对象的访问设计模式系列源码 https://github.com/liloqian/DesiginModeDemo 背景,我们生活中,一般找个明星代言的过程是,找到明星的代言人,和代言人商量就可以了1.UML类图 Subject ,抽象出来的一个借口RealSubject , 真正做事的对象,背景中的明星Pr

2017-09-17 22:57:25 179

原创 设计模式-----复杂模式

设计模式—–复杂模式复合模式, 在一个解决方案中结合两个或多个模式,比如MVC设计模式,结合图片分析一下MVC中的三大设计模式 背景 还是按照鸭子来进行背景设计,通过不断加入新的模式来使用多种模式解决问题,但是将这些模式结合使用并不代表这些模式有资格称为复合模式1.使用多种模式 一大波鸭子的叫声public interface Quackable { public void q

2017-09-17 22:46:25 264

原创 设计模式-----状态模式

设计模式—–状态模式状态模式 , 允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类设计模式系列源码: https://github.com/liloqian/DesiginModeDemo 背景 , 水有三种状态,通过不同方法可以在三种状态中进行转变;我们这里要做的就是实现这个转变的过程1.简单的实现,不是用状态模式public class InitialDemo {

2017-09-17 17:45:08 275

原创 设计模式-----模板方法模式

设计模式—–模板方法模式策略模式,在一个方法中定义一个算法的骨架,而将一些具体的步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤设计模式系列博客代码: https://github.com/liloqian/DesiginModeDemo 背景 , 我们的生活过程中,煮茶和咖啡的工作看起来不同,但是都可以分为下面4步,烧水,把茶或者咖啡放入水中,把咖啡或者

2017-09-16 17:15:12 198

原创 设计模式-----适配器模式

设计模式—–适配器模式适配器模式 , 将一个接口转化为另外一个接口,以符合客户的期望。实现让原本接口不兼容的类可以合作无间。看了下面的很清晰了设计模式系列源码: https://github.com/liloqian/DesiginModeDemo 背景 ,客户向我们预定100只鸭子和100只鸡,但是我们只有50只鸭子,鸡有很多,这么大一笔生意不做太可惜了? 我左思右想…我拿50只鸡去冒充鸭子不

2017-09-15 22:58:24 189

原创 设计模式-----命令模式

设计模式—–命令模式命令模式 , 将请求封装成对象,以便使用不同的请求,队列或日志来参数化其他对象,命令模式也支持可撤销的操作设计模式系列源码: https://github.com/liloqian/DesiginModeDemo 背景 现在有一个遥控器,上面有1个按钮,我们要根据不同的请求来控制不同的电器,比如说可以控制风扇,点灯等,这里我们就可以引入命令模式在面向对象的程序设计

2017-09-15 22:57:40 208

原创 设计模式 ----- 单件模式

设计模式 —– 单件模式单件模式,确保一个类只有一个实例额,并提供一个安全的全局访问点所有设计模式中最简单的一种,但是在软件开发中使用的很频繁 背景 , 在我们的程序设计过程中,经常会用到一个类的实现在整个程序中只有一个初始化一个实例,为什么会出现这种需求哪? 1.多个实例可能会出现在不同的线程中同时操作同一个设备,比如同时读写同一个配置文件,同时操作打印设备,都会产生数据的不确定性

2017-09-15 14:49:55 188

原创 设计模式-----工厂模式

工厂模式工厂方法模式,定义了一个创建对象的接口,单由于子类决定要实例化的类是哪一个。工厂方法把实例化推迟到子类抽象工厂模式,提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类设计模式系列源码: https://github.com/liloqian/DesiginModeDemo 背景 , 我们是披萨厂家,要给我们的客户提供一个订餐系统,可以预定我们各种各样的披萨(捞蛤披萨,奶

2017-09-14 23:31:01 186

原创 设计模式-----装饰模式

装饰模式装饰模式,动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案,在Java JDK的io实现中使用了大量的装饰者模式设计模式系列博客博主源码: https://github.com/liloqian/DesiginModeDemo 背景 我们要帮星巴克提供一个自动打印咖啡信息和价格的软件,比如基础的浓缩咖啡,混合咖啡,每个基础咖啡加了什么调料(几分糖,几分

2017-09-14 16:32:59 182

原创 设计模式 ----- 观察者模式

设计模式 —– 观察者模式观察者模式,在对象之间定义一对多的依赖,当一个对象状态改变时,依赖他的对象就会收到通知。典型的实现是java swing中的组件监听事件,当我们点击按钮时会调用我们注册的回调函数;还有Rxjava等等 背景 我们是一个天气台,有许多客户,当我们天气信息更新时,我们需要通知用户进行刷新…,我们要利用的是观察者模式观察者模式主要由下面几部分组成:Subject:抽

2017-09-14 16:31:31 164

原创 设计模式 ----- 策略模式

设计模式 —– 策略模式OOP设计必须具备 可复用 ,可扩充, 可维护 背景 有一个软件要描述好多鸭子,主要包括了游泳,什么外观,飞行的动作,我们该怎么设计。1使用继承public class DemoOne { //公共父类 abstract class Duck{ public void Duck(){} //所以鸭子的游泳行为都是一致

2017-09-12 22:02:30 171

原创 JavaPoet

JavaPoet的简单了解JavaPoet是一个用来生成.java源文件的Java第三方库,在ButterKnife注解库中首次见到了这个工具,当做如注解或者数据库模式、协议格式等事情时,生成源文件就比较有用处。参考博客地址 http://www.jianshu.com/p/95f12f72f69a 官方github地址 https://github.com/square/javapoet1.配置

2017-09-11 19:45:56 188

转载 proc 目录

/proc 目录 Linux 内核提供了/proc文件系统,在运行是访问内核数据结构,改变内核的机制。proc文件系统是一个伪文件系统,它仅仅存在内存中,而不占用外存空间,它以文件系统都方式位访问系统内核数据的操作系统。 /proc目录主要包括两种文件或文件夹 1.一种是数字 ,以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的

2017-09-04 19:37:03 209

原创 Java 提高(6)----- 多线程

Java 提高(6)—– 多线程1.线程的状态 新创建线程 在new Thread(r)后该线程还没有运行,状态还是new 可运行线程 线程处于runable状态,可运行的线程可能在运行也可能没有在运行,当获得时间片就是运行否则就是没有运行 阻塞线程 当一个线程试图获取被其他对象持有的锁就会进入阻塞状态,这是同步阻塞;当运行sleep或者join这个线程也会进入阻塞状态,这时当s

2017-09-02 21:07:23 147

原创 Java 提高(5)----- 泛型

泛型为什么使用泛型 在没有泛型的情况下,我们可能为一种数据类型写一个方法或者类,这大大增加代码量,当然我们也可以使用Object对象代替某种数据类型,但是这样get会需要强制类型转换,遇到错误只有在运行时才可以发现,在这种情况下我们需要使用泛型类定义一个简单的泛型public class Fruit<T> { private T data; public T getData()

2017-09-02 21:06:16 143

转载 linux 设备树

linux 设备树参考地址 http://blog.csdn.net/green1900/article/details/45646095 http://www.cnblogs.com/xiaojiang1025/p/6131381.html http://blog.csdn.net/21cnbao/article/details/84575461.为什么要使用设备树(Device Tree

2017-09-01 22:19:36 2333

原创 Java 提高(4)----- 异常 Logger

异常 Logger推荐博客 http://blog.csdn.net/hguisu/article/details/6155636异常分类 所有的异常有Throwable(直接继承了Object)继承而来,有两个子类Error和ExceptionError , 描述了java运行时系统的内部错误和资源耗尽错误,应用程序不应该抛出这种类型的错误,当出现了这种错误,我们只能告诉使用者错误类型,安全的

2017-08-31 10:43:21 1550

原创 Java 提高(3)----- 类

Java 提高(3)—– 类Java类的方法 类的方法可以分为两种,一种是类方法,就是用static修饰的方法,在调用时可以直接用类名调用;另一种是对象方法,没有用static修饰方法,在调用时用对象调用,在同一个类一个方法调用另外一个方法时,如果调用的是非static方法,那默认使用this作为调用者方法不能独立定义,只能在类里定义从逻辑意义上看,方法要么属于该类本身,要不属于该类的一个对象

2017-08-29 22:39:40 135

原创 Java 提高(2)----- 类型转换

类型转换基本类型的类型转换 当我们传入的参数和要求的参数不一样时,如果从满足自动类型转换时会自动类型转换自动类型转换 一个表数范围小的可以向表数范围大的进行自动类型转换,如上图,可以从左边自动向右边转换public class AutoTraverse { private void f1(byte b){ System.out.println("byte "+b);

2017-08-29 22:37:23 148

原创 Java 提高(1)----- java中的goto语句

java中的goto语句Java中的goto语句 在java中可以使用标签和continue,break组合形成goto的效果public class LabelDemo { public static void main(String[] args) throws InterruptedException { //标签 exit: wh

2017-08-28 23:07:16 3766

原创 Android日志系统第三方库------Logger 源码分析

Android日志系统第三方库——Logger 源码分析 在前面了解Logger的使用方法http://blog.csdn.net/chenqianleo/article/details/77461446,想这个第三方库的实现应该很简单,看了源码后代码量很小仅有1000多行代码,1000多行代码就可以实现这么漂亮好用的Logger工具,代码对我来说还是值得阅读的,代码下载请从官方git下载htt

2017-08-28 20:54:53 657

提示
确定要删除当前文章?
取消 删除