EventBus是一款针对Android优化的发布/订阅事件总线,简化了应用程序内各组件间、组件与后台线程间的通信。
主要是替代 handler BroadCast 在 Fragment 、Activity 、Service 线程之间传递消息。
EventBus 概述1、EventBus 有三个主要的元素:
Event:事件,可以是任意类型的对象。
Subscriber:事件订阅者,在EventBus3.0之前消息处理的方法只能限定于onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,他们分别代表四种线程模型。而在EventBus3.0之后,事件处理的方法可以随便取名,但是需要添加一个注解@Subscribe,并且要指定线程模型(默认为POSTING),四种线程模型下面会讲到。
Publisher:事件发布者,可以在任意线程任意位置发送事件,直接调用EventBus的post(Object)方法。可以自己实例化EventBus对象,但一般使用EventBus.getDefault()就好了,根据 ...
ClassNotFoundException 是 java.lang.ClassNotFoundException 的简称,是 Java 语言中的一个异常类,位于 java.lang 包中,父类是 java.lang.ReflectiveOperationException ,该异常指找不到指定的 Class。
常见的场景就是:
1 调用class的forName方法时,找不到指定的类。2 ClassLoader 中的 findSystemClass() 方法时,找不到指定的类。3 ClassLoader 中的 loadClass() 方法时,找不到指定的类。
Spring Boot 入门 Hello Spring Boot !
前面在师兄的带领下,基于 nodejs 写了机房管理系统后端,也根据需要实现了简单三维重建的后端服务。但是总感觉怪怪的,前者基于 Eggjs 后端框架,后者基于 Express 后端框架,好像跟 Java 没啥关系啊。
这几天刻意学习下 Spring Boot 后端框架,并把三维重建服务后端重写了。下面记录下学习过程。
Spring BootSpring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot 可以使用 Maven 或 Gradle 这样的构建系统,本文是基于 Maven(现在用得比较多,其实我更熟悉Gradle)。
Spring Boot 特性Spring将很多魔法带入了 Spring 应用 ...
移动端技术
未读《第一行代码》读书笔记 – 应用组件之 Service
《第一行代码》读书笔记(一)– 平台架构 (第1章)《第一行代码》读书笔记(二)– 应用组件之 Activity (第2、4章)《第一行代码》读书笔记(三)– 应用组件之 Service (第10章)《第一行代码》读书笔记(四)– 应用组件之 BroadcastReceiver (第5章)《第一行代码》读书笔记(五)– 应用组件之 ContentProvider (第7章)《第一行代码》读书笔记(六)– 数据存储方案 (第6章)《第一行代码》读书笔记(七)– 多媒体资源 (第8章)《第一行代码》读书笔记(八)– 网络编程 (第9章)
第10章 后台默默的劳动者Service 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。
服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。
Android 多线程编程Android 多线程 和 Java 多线程基本相同。
定义一个线程只需要新建一个类继承自 Thread 或者 实现 Runnable 接口,然后重写或者实现 run() ...
Ubuntu 16.04 LTS 系统下搭建 Android 开发环境
昨天圣诞节在机房装了台 Ubuntu ,主要是想试下管理系统的部署,原来在虚拟机下部署的没问题,在真机上部署基本上也没有什么问题。
有台 Ubuntu 还是很有必要的,后面编译软件会方便很多。现在先学习搭建下 Android 开发环境。
Java 环境在比较新的版本 Android Studio 里面已经有 OpenJDK 了,但是 Oracle Java 更好点,我们直接使用命令安装。
sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install java-common oracle-java8-installer
在安装的过程会询问是否同意许可,选择同意即可。
配置 Java 环境变量,依次执行以下命令:
sudo apt-get install oracle-java8-set-defaultsource /etc/profile
默认安装路径在 /usr/lib/jvm/java-8-oracl ...
移动端技术
未读《第一行代码》读书笔记 – 应用组件之 Activity
《第一行代码》读书笔记(一)– 平台架构 (第1章)《第一行代码》读书笔记(二)– 应用组件之 Activity (第2、4章)《第一行代码》读书笔记(三)– 应用组件之 Service (第10章)《第一行代码》读书笔记(四)– 应用组件之 BroadcastReceiver (第5章)《第一行代码》读书笔记(五)– 应用组件之 ContentProvider (第7章)《第一行代码》读书笔记(六)– 数据存储方案 (第6章)《第一行代码》读书笔记(七)– 多媒体资源 (第8章)《第一行代码》读书笔记(八)– 网络编程 (第9章)
Android 应用的四大组件 Activity,Service,Broadcast Receiver, Content Provider 最为核心。
第2章 先从看得到的入手Activity 是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片或查看地图等操作。
Activity 创建、启动及销毁要创建 Activity,必须创建 Activity 的子类(或 ...
移动端技术
未读《第一行代码》读书笔记 – 平台架构
《第一行代码》读书笔记(一)– 平台架构 (第1章)《第一行代码》读书笔记(二)– 应用组件之 Activity (第2、4章)《第一行代码》读书笔记(三)– 应用组件之 Service (第10章)《第一行代码》读书笔记(四)– 应用组件之 BroadcastReceiver (第5章)《第一行代码》读书笔记(五)– 应用组件之 ContentProvider (第7章)《第一行代码》读书笔记(六)– 数据存储方案 (第6章)《第一行代码》读书笔记(七)– 多媒体资源 (第8章)《第一行代码》读书笔记(八)– 网络编程 (第9章)
我最开始学习 Android 是在 2014 年下半年,看的是《疯狂Android讲义》。
在 2015 年参加 ESRI 中国组织的 GIS 开发大赛,也是主要在暑假学习了不少 Android 入门知识。
后面在较长一段时间,感觉停滞在 Android 入门的水平不前。也有尝试在项目中使用一些优秀的框架或者类库,但是感觉自身的水平并没有多大的提高。
所以有意在前面学习计算机基础、Java 语言基础 ...
《Java编程思想》读书笔记 —— 注解。
第20章 注解注解(也叫元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。
注解的优点:
1.可以提供用来完整地描述程序所需的信息(这些信息无法用Java表达)-> 以将由编译器来测试和验证的格式存储有关程序的额外信息。2.可以用来生成描述符文件或是新的类的定义->减轻编写”样板”代码的负担。3.更加干净易读的代码以及编译器类型检查。
注解的语法:除@符号的使用外,其他和Java固有语法一样
Java SE5内置了三种,定义在java.lang中的注解:
@Override 当前的方法定义将覆盖父类(超类)中的方法。@Deprecated 被注解的元素被取代,不推荐使用。@SuppressWarnings 关闭不当的编译器警告信息。
基本语法1.@Target 表示该注解可以用于什么地方。
ElementType参数包括:
public enum ElementType { //类、接口(包括注解类型)或是enum声明 TYPE, //域声明(包括 ...
《Java编程思想》读书笔记 —— Java I/O 系统。
第18章 Java I/O 系统File 类File 类不仅仅可以代表一个特定文件的名称,还可以代表一个目录下的一组文件的名称。
输入与输出Java 中使用流来处理程序的输入和输出操作,流是一个抽象的概念,封装了程序数据于输入输出设备交换的底层细节。Java I/O 中又将流分为字节流和字符流,字节流主要用于处理诸如图像,音频视频等二进制格式数据,而字符流主要用于处理文本字符等类型的输入输出。
1.字节输入流 InputStream:
输入流 InputStream 负责从各种数据/文件源产生输入,输入源包括:字节数组,字符串,文件,管道,一系列其他类型的流,以及网络连接产生的流等等。
常用字节输入流的主要类型:
(1).ByteArrayInputStream 字节数组输入流:
主要功能:允许内存缓存作为输入流。
ByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read() 方法要提供的下一个字节。
注意:关闭 Byte ...
《Java编程思想》读书笔记 —— 类型信息及泛型。
第14章 类型信息RTTI (Run-Time Type Identification, 运行时类型识别) 是 Java 中非常有用的机制。
abstract class Shape { void draw() { System.out.println(this + ".draw()"); } abstract public String toString();}class Circle extends Shape { public String toString() { return "Circle"; }}class Square extends Shape { public String toString() { return "Square"; }}public class Shapes { public static vo ...






