- 博客(38)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 EventBus的介绍
什么是EventBus?EventBus是一个Android和Java的开源库,使用发布者/订阅者模式进行松散耦合。 EventBus只需几行代码即可实现与分离类的集中通信 - 简化代码,消除依赖关系,并加速应用程序开发。消息发布者通过EventBus将事件发送给消息订阅,具体流程如下图所示:使用EventBus带来的好处简化了组件之间的通信将事件发送者和接收者分离在UI工件(例如...
2019-08-18 18:08:39
620
原创 EventBus之ThreadMode
什么是ThreadMode?ThreadMode翻译为中文即为“线程模式”。每个事件处理程序方法都有一个线程模式,它确定EventBus调用该方法所在的线程。 EventBus专注于发布事务线程的独立性。线程模式分类POSTING消息订阅者将与发送者所处在同一线程中。这是默认值。该模式避免了线程切换所带来的开销。这是处理简单事务所推荐的模式。如果发布线程是主线程,使用该模式必须立即返回...
2019-08-18 17:48:05
1410
原创 Flutter开发中启用Dart DevTools 连接App进行调试
1. 运行项目点击上图红框中的调试按钮,运行项目。2. 启动Dart DevTools点击上图红框中的按钮后将会打开浏览器页面(如下图3所示)。3. 点击Open Observatory如上图所示,点击“Open Observatory”,之后会打开如下图5所示的网页将上图5中地址栏选中的蓝色背景的复制后填入图3中的输入框中,如下图6所示:点击Connect后,最终效果如...
2019-07-24 17:45:35
13062
1
原创 关于Android Studio中找不到Dart DevTool的问题
Android Studio3.1以上flutter插件才支持Dart DevTool,旧版本的话只支持Flutter Inspctor。 安装新版本的AS之后,需要同时升级AS 中的Dart及Flutter插件。 安装好后如下图所示:,而且它们的屏幕也有不同的像素大小。 也就是说,虽然一个设备每平方英寸有160个像素,但另一个设备在同一空间中可以容纳480个像素。 如果不考虑像素密度的这些变化,系统可能会缩放图像(导致图像模糊),或者图像可能会以完全错误的尺寸显示。使用与密度无关的像素第一个必须避免的陷阱便是使用像素来定义距离或大小。 用像...
2019-04-29 17:42:40
581
原创 Java锁的种类
Java锁的种类内置锁Java 提供了一种内置的锁机制来支持原子性:同步代码块(Synchronized Block)。同步代码块包含两部分,一个作为锁的对象引用,一个作为由这个锁保护的代码块。以synchronized来修饰的方法就是一种横跨整个方法体的同步代码块,其中该同步代码块的锁就是方法调用所在的对象。每个Java对象都可以用做一个实现同步的锁,这些锁称为内置锁或监视锁。线程进入同步代...
2019-04-17 16:55:21
4331
原创 Java线程安全
什么是线程安全性当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。如何实现线程安全无状态对象即对象既不包含任何域,也不包含任何对其他类中域的引用。计算过程中的临时状态仅存在于线程栈上的局部变量中,并且只能由正在执行的线程访问。由于线程之间并没有共享状态,就好像都在访问不同的实例。由于线程访问无状态对象的行为并不会影响其他线程中的正确性,故而无状态对象是...
2019-04-17 16:48:28
111
原创 多线程概述
文章目录什么是线程?什么是多线程?使用多线程的目的多线程优势多线程风险什么是线程?线程是操作系统能够进行运算调度的最小单位。 它被包含在进程之中,是进程中的实际运作单位。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。什么是多线程?多线程是指:一个程序内部存在多个线程同时执行。使用多线程的目的提高资源使用效率,从而提高程序的运行效率...
2019-04-15 17:23:17
346
翻译 AndroidManifest.xml文件中<activity>元素用法
AndroidManifest.xml文件中&lt;activity&gt;元素用法AndroidManifest.xml文件中元素用法语法用法描述属性android:allowEmbeddedandroid:allowTaskReparentingandroid:alwaysRetainTaskStateandroid:autoRemoveFromRecentsandro...
2018-07-29 23:28:29
4207
1
翻译 AndroidManifest.xml文件中<action>元素用法
AndroidManifest.xml文件中&lt;action&gt;元素用法AndroidManifest.xml文件中元素用法用法描述:属性(attributes):元素必须放在&lt;intent-filter&gt;中,形如:&lt;intent-filter ... &gt;&lt;action android:name="strin
2018-07-28 17:07:55
2557
翻译 AndroidManifest.xml 文件详解
AndroidManifest.xml 文件详解AndroidManifest.xml 文件详解概述文件特性包名和应用ID(application ID)应用程序组件(App components)意图过滤器(Intent filters)Icons和labels权限(Permissions)设备兼容性(Device compatibility)文件约定元素(E...
2018-07-27 16:50:37
14125
翻译 JNI介绍
第一章 介绍java本地接口概述历史背景JDK10 本地方法接口Java运行时接口原生的本地接口和javaCOM接口目标java本地接口方法面向 JNI 编程改变第一章 介绍 这一章介绍的是Java本地接口(JNI).JNI是本地编程的接口,它允许运行在java虚拟机里面的java代码调用使用其它语言编写的库和应用,例如C,C++等其它语言. JNI最有利的地方在于它
2016-11-28 09:36:55
451
原创 java枚举单例的好处
java枚举单例好处不外乎三点:1.线程安全 、2.不会因为序列化而产生新实例、 3.防止反射攻击。线程安全通过类加载机制保证不会因为序列化而产生新实例当前类自己实现了readResolve()方法防止反射攻击。因为单例类的修饰是abstract的,所以没法实例化。
2016-04-21 17:28:32
1089
原创 Android Camera多屏幕适配解决预览照片拉伸
通常,拍照预览页面的照片拉伸主要与下面两个因素有关:1. Surfaceview的大小2. Camera中的Preview的大小如下图: 如图,该手机surfaceview大小为1280*720(横屏,比例为:16:9)预览尺寸大小为960*720(横屏,比例为4:3)。从上面的二维码可以看到产生了明显的拉伸。正因为surfaceview的宽高比例跟camera
2015-10-22 20:12:49
23491
2
原创 浅谈android如何同时适配pad和手机
前期的注意事项和技巧前段时间公司要做的一个android app,同时要做到适配pad跟手机。刚开始觉得这根本不可能实现,因为我们市场上见到的app都是要两个版本的,分别是手机版和pad版。因为手机和屏幕的尺寸相差太大,所以一般都不会说一个app同时兼容两个版本。 为了做到屏幕的兼容,所以我专门去网上查找资料,看看目前市场上主流的手机尺寸和分辨率分别是多少。主要找到的情况如下图所示:
2015-07-26 00:28:12
22700
2
原创 话说android端七牛图片上传
七牛图片上传业务流程如下图(这是官方的图):由上图可知,要想实现图片上传,是要三端进行交互的(我刚刚开始以为只要七牛服务器跟客户端交互就行)接下来步骤如下:1、首先肯定是要有一个七牛的账号,并创建一个空间2、客户端向业务服务器(也就是客户端的应用服务器)发请求你要上传多上张图片3、业务服务器根据客户端的请求向七牛云存储生成token(应用的服务器下载好相应的七牛sdk然
2015-04-04 10:51:36
3150
原创 ListView焦点
如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,事件会被子View捕获到,ListView无法捕获处理该事件.解决方法:第一种方法:在checkbox、button对应的view处加android:focusable="false" and
2014-12-12 09:47:37
900
原创 android 中的Service
Service用处耗时比较长的功能操作放在后台。(下载,MP3播放)Service是一个应用程序组件Service没有图形化界面可以使用Service来更新ContentProvider,发送Intent以及启动系统的通知等等。Service不是一个单独的进程,Service不是一个线程。Service的生命周期onCreat():当Service第
2014-12-12 09:43:39
850
原创 广播机制
广播机制BroadcastReceiver用于监听被广播的事件。开发Broadcast Receiver 对象注册到Android操作系统当中。注册方法:1.在AndroidManifest.xml中注册,具体哪个Broadcast Receiver接收哪个操作就要在intent-filter中声明action。如果声明的action与Broadcast Receiver不匹配
2014-12-12 09:40:09
555
原创 Handler的使用
Handler的基本概念 Handler提供了一种异步处理的机制。 存在两个队列,一个是把线程放进去的队列,另一个是消息队列。 Activity是一个线程,下载是另一个线程。Handler基本使用方法 马上加入到消息队列中:post(Runnable对象引用), 从消息队列中移除:removeCallback(Run
2014-12-12 09:38:05
822
原创 SQLite的使用方法
SQLite介绍 关系型数据库,功能比较全,消耗比较小。SQLiteOpenHelper使用方法 SQLiteOpenHelper能更方便的对数据库进行操作。 SQLiteOpenHelper是一个抽象类,需要先写一个类来继承它。也就获得SQLiteOpenHelper对象,通过getReadableDatabase()或者getReadableD
2014-12-12 09:35:18
606
原创 Oauth工作原理
Oauth定义1、Oauth是一种安全认证的协议2、Oauth协议为用户资源的授权提供了一个安全的、开放而又简易的标准3、Oauth的授权不会使第三方触及到用户的账号信息 官方地址:http://www.oauth.netOauth中的角色1、Service Provider(服务提供者):服务提供者通常是网站,在这些网站当中保存着一些受限制的资源。例如
2014-12-12 09:33:22
909
原创 Ubuntu下手机USB 显示??? insufficient permissions for device
1.如果没有51-android.rules文件,在/etc/udev/rules.d/目录下创建51-android.rules;命令:sudovi/etc/udev/rules.d/51-android.rules然后在里面输入 : SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"2.修改/e
2014-12-11 16:28:41
745
原创 andorid Junit 单元测试
创建一个package com.yunfeng.service;public class PersonService { public void save(){ String str = "123"; Integer integer = new Integer(str); }}
2014-09-04 16:33:38
632
原创 Android中用webView来解决文字排版实现两端分散对齐的方式
// 文字排版 versionwv = (WebView) findViewById(R.id.about_version);
2014-08-19 17:34:41
7605
原创 Java中的单例模式
这是创建的单例leipublic class Danli {private int name;public int getName() {return name;}public void setName(int name) {this.name = name;}private Danli() {// TODO Auto-generated const
2014-08-16 23:55:32
609
原创 Android中的DatePicker和AutoCompleteTextView
创建DataPickerDialog的步骤 (1) 声明一个监听器,使用匿名内部类 private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
2014-03-08 11:50:51
838
原创 Android中Spinner的使用方法
(1)在布局文件中的声明 android:id="@+id/spinnerld" android:layout_width="fill_parent" android:layout_height="wrap_content" />(2)在String.xml当中声明一个数组 Mercury Venus
2014-03-08 10:49:27
1142
原创 AWT中的Event
AWT中的Event事件处理基础 1.事件:一个对象,它描述了发生什么事情。 2.事件源:产生事件的组件。 3.事件监听器:能够接收、解析和处理事件类对象、实现和用户交互的方法。事件处理机制 1.委派式事件处理(delegation):个别的组件将整个事件处理委托给特定的对象,当该组件发生指定的事件时,就通知所委托的对象,有这
2014-02-22 20:16:12
864
原创 java中的AWT布局管理器
布局管理器:按照某种规则布局组件常用布局管理器FlowLayout 1.从左到右按顺序配置在Container中,若到达右边界,则会折回到下一行中 2.FlowLayout是Panel和Applet的默认管理器 3.构造方法:FlowLayout()、FlowLayout(int align)、FlowLayout(int align,
2014-02-22 14:30:04
1776
原创 android中的Service
ServiceService用处耗时比较长的功能操作放在后台。(下载,MP3播放)Service是一个应用程序组件Service没有图形化界面可以使用Service来更新ContentProvider,发送Intent以及启动系统的通知等等。Service不是一个单独的进程,Service不是一个线程。Service的生命周期onCreat(
2014-02-21 20:28:21
565
原创 android中的Handler
Handler的基本概念 Handler提供了一种异步处理的机制。 存在两个队列,一个是把线程放进去的队列,另一个是消息队列。 Activity是一个线程,下载是另一个线程。Handler基本使用方法 马上加入到消息队列中:post(Runnable对象引用), 从消息队列中移除:removeCallback(Run
2014-02-12 13:29:19
606
深入理解 Android 一
2017-05-04
同样一段代码,但是用gcc编译是通过的,用g++编译是不通过的?
2018-01-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人