- 博客(49)
- 收藏
- 关注
转载 MQTT笔记
转自:http://www.xuebuyuan.com/1951015.htmlAndroid开发之利用MQTT协议实现消息的即时推送实现消息的即时推送,网上给出了几种常见的即时消息推送机制:1)轮询:应用程序应当阶段性的与服务器进行连接并查询是否有新的消息到达,你必须自己实现与服务器之间的通信,例如消息排队等。而且你还要考虑轮询的频率,如果太慢可能导致某些消息的延迟,如...
2019-06-17 21:56:05
238
1
转载 hashCode()和equals()说明
参考https://mp.weixin.qq.com/s/aDDotZphhDRCWV4nAZbwhQ一、hashCode()和equals()是什么?hashCode()方法和equals()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致。二、hashCode()和equals()的区别下边从两个角度介绍了他们的区别:一个是性能,一个是可靠性。他们之间的主要区别也基本...
2019-06-17 21:54:00
229
原创 注解处理器(Annoation Processor)
前言Java中的注解(Annotation)如果要被识别,离不开注解处理器。所以有必要来了解一下。注解处理器注解处理器(Annotation Processor)是javac的一个工具,不管是运行时注解还是编译时注解,都会通过处理器在编译时进行扫描和处理注解。Java中有默认的注解处理器,使用者也可以自定义注解处理器,注册后使用注解处理器处理注解,最终达到注解本身起到的效果。注解处理器将...
2019-04-02 18:11:36
7083
原创 ButterKnife注解框架
https://www.cnblogs.com/SongYongQian/p/7967202.html前言学了怎么自定义注解处理器,那么我们也可以来学一下Android开发中很常用的注解框架Butter Knife。框架的学习,能帮助自己有更深的理解。概述ButterKnife是目前常用的一种依托Java注解机制实现辅助代码生成的框架;用到了注解处理器。它是一个专注于Android系统的...
2019-04-02 16:10:49
250
原创 ARoute路径说明
前言学习了ARouter的使用,以及Activity的跳转流程,今天来学习下关于路径与自动生成的文件等对应关系。关于用到的注解@Router 、@Interceptor、@Autowired下次再学。先把整个对应关系看到了,再学习会觉得形象些。Route关系说明Route主要有两个属性,path和group。如:@Route(path = “/app/ListPage”, group = ...
2019-04-02 16:01:38
2018
转载 注解(Annotation)
前言使用JAVA语言,就少不了提到注解。不管是看JDK中源码还是自己开发项目,都会用的。注解是java5引入的概念,那么先来详细的了解下什么是注解,有什么分类。怎么用?参考资料https://www.cnblogs.com/xdp-gacl/p/3622275.html什么是注解注解可以看做一种元数据,即一种描述数据的数据。注解本身是描述其他数据的。在jav中,注解就是源代码的元数据。比...
2019-02-19 23:22:52
157
原创 ARouter-Activity跳转
前言上一篇[ARouter类简单介绍](https://blog.csdn.net/skycnlr/article/details/86534451)已经介绍了Arouter涉及的主要类和作用。以及[ARouter-简单路由跳转](https://blog.csdn.net/skycnlr/article/details/85882815)中也讲述了怎么实现跳转。现在剖析源码分析下Activit...
2019-01-21 14:21:51
1257
原创 ARouter类简单介绍
前言ARouter使用上一遍已经讲述了。已经看到了基本页面跳转很方便,其实它还有其他路由功能。包括provider、Fragment等。为了详细了解ARouter的原理,先从重要的实现类的源码剖析来入手。了解了重要组成类和功能,再从流程上进行分析。ARouter详细源码参考:https://github.com/alibaba/ARouterPostcard类: 明信片A contain...
2019-01-18 15:52:11
2633
原创 Too many open files问题
Too many open files问题在做项目中,遇到这样一个问题Too many open files:01-15 23:35:56.481 W/System.err(18683): java.io.FileNotFoundException: /data/data/xxx/C2BD95DBA8137A69CAE53D3B34886395: open failed: EMFILE (To...
2019-01-16 19:28:49
3695
原创 Flutter问题集
问题一、flutter创建应用白屏问题终端日志提示:Failed to setup Skia Gr context.这个可能出现到模拟器上,真机一般不会出现。解决办法:运行时候增加参数: flutter run --enable-software-rendering或者在 Android Studio配置:选择run/configurations 菜单进行参数增加。...
2019-01-16 13:56:41
196
原创 Flutter学习-Platform Channel的使用
一、前言上一篇已经详细说明了Flutter和平台间交互的channel类型、参数等,现在来看一下实际怎么使用?二、MethodChannel的使用Flutter端调用平台端(以android为例)Flutter端:通过调用invokeMethod()进行class FlutterPluginTest { static const MethodChannel _channel = ...
2019-01-16 10:58:08
3243
原创 Flutter学习-Channel详解
Flutter学习-Channel详解前言上一篇文章中Flutter学习-插件开发学习插件开发,提到了一个很重要的通信platform channel:MethodChannel。其实flutter和本地的交互,还有其他channel。为了更好的学习插件,先来了解下各个channel,包括Channel分类、如何工作(消息如何从Flutter端传递到Platform端,消息如何编解码,Plat...
2019-01-15 14:26:30
5353
1
原创 Flutter学习-插件开发
Flutter插件开发前言Flutter是移动开发的跨平台框架,在使用该框架开发过程中,很多原生如Android的系统版本、toast、定位、电量等功能,Flutter是无法实现的这些特定平台的功。这个场景下我们就只有使用插件来达到使用平台特定功能的效果。那么插件是什么呢Flutter中的插件是这样定义的:一种专用的Dart包,其中包含用Dart代码编写的API,以及针对Android(...
2019-01-14 22:47:46
3504
1
原创 Android 类加载器特性说明
Android 插件化基础(一)前言学习插件,要先了解上一篇Android动态加载器。因为这篇文章已经说到了类加载器的一个特性,隔离:类加载器可以实现隔离(即各个模块独立)。所以,类加载器是实现插件化一个很重要的基础。那可能会有人问,既然各个模块独立了,怎么实现多个模块的数据访问呢?其实,上篇文章Android动态加载器也说到了加载器的共享特性,利用这个特性,数据访问也就清晰了。那么,通过举例...
2019-01-14 10:52:01
158
原创 Android动态加载器
Android动态加载方案前言每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。识别的是dex文件,而不是class文件。供类加载的文件也只能是dex文件,或者包含有dex文件的.apk或.jar文件类。类加载方式1、由 new 关键字创建一个类的实例如:Student student= new Student();2、调用 Cla...
2019-01-11 14:35:03
291
原创 Flutter学习-热重载
Flutter学习-热重载前言上一篇文章Flutter学习-基础组件Widgets中学习了使用Container来构建一个app页面,此时如果需要修改调试,不需要再次运行,有一个简便的方式就是使用热重载。什么是热重载所谓热重载就是页面每次改动,不需要手动去刷新,可自动刷新。即支持开发过程中热重载。很多跨平台方案框架,如Vuex都是支持热重载的,而我们学习这个Flutter,当然也是支持。...
2019-01-08 13:29:25
3593
原创 Flutter学习-基础组件Widgets
Flutter学习-基础组件Widgets前言Flutter是一个跨平台开发框架,使用dart语言开发,其提供了很多基础组件。开发者可以直接使用达到快速开发效果。参考文献:1.官网基础组件:https://flutterchina.club/widgets/basics/2.Flutter Widget 索引:https://flutterchina.club/widgets/widget...
2019-01-08 13:07:06
4807
1
原创 对比Android页面直接跳转方式(为学习Arouter做准备)
对比Android页面直接跳转方式(为学习Arouter做准备)前言上文中我们已经学习了怎么用Arouter路由框架进行页面的跳转,但是只是用了,并没有思考为什么要用路由框架?它有什么好处吗?原生的跳转不能达到效果吗?现在我们复现下跳转时候的代码:ARouter.getInstance().build("/app/ListPage") //页面跳转,指定跳转路径 ...
2019-01-07 20:05:27
811
原创 ARouter-简单路由跳转
ARouter-简单路由跳转前言为什么会有路由框架?它的优势是什么呢。带着这些疑问,先来看一下怎么用Arouter框架来实现一个简单的路由跳转。了解使用后,再来思考此问题。参考资料Arouter GiHub项目地址:https://github.com/alibaba/ARouter探索Android路由框架-ARouter之基本使用 https://www.jianshu.com/p...
2019-01-05 23:01:27
1070
原创 Android studio编译问题总结(一)
Android studio编译问题总结(一)常见问题一:Failed to find Build Tools revision 26.0.2详细错误如下:Error:A problem occurred configuring project ':app'.> Failed to find Build Tools revision 26.0.2当使用as编译时候出现该问题,提示...
2019-01-04 23:41:01
994
原创 Android 出现Http 302跳转问题
Android 出现Http 302跳转问题最近在做一个网络诊断功能,检测外网连通性,测试地址是http://www.baidu.com。问题出现测试方法:HttpURLConnection进行网络连接访问,根据访问返回的http状态码是否为200,确定外网是否连通。测试代码: int resCode = -1; try...
2019-01-03 16:37:49
4604
原创 java的锁介绍(乐观锁与悲观锁)
2019第一篇文章-java的锁介绍(乐观锁与悲观锁)什么是乐观锁、悲观锁乐观锁的CAS实现使用选择什么是乐观锁、悲观锁第一次听到这个名字,怎么把锁都拟人化了?所以很好奇的去查阅了下,看了之后,发现这样比喻确实有它的道理。对应到代码来说,就简单了。锁是java并发处理的一种实现方式,那我们来了解下这两种锁。乐观锁,总是很乐观的,在多线程并发过程中,不会认为别人每次会修改自己的数据,所以再别人...
2019-01-03 13:14:21
989
转载 Android sdk版本号和API级别的对照表
Android SDK版本号与API级别的对照表对应关系可以参考官网:https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels API 级别是一个对 Android 平台版本提供的框架 API 修订版进行唯一标识的整数值。Android 平台提供了一种框架 API,应用可利用它与
2018-01-12 10:31:18
14863
原创 java基础之变量覆盖?
很多人还在想这样一个问题:java的变量能被覆盖吗?其实java的覆盖是指方法来说的,变量是不能覆盖的。如下:public class Test { public static void main(String args[]) { A a = new B(); System.out.println(a.i); Sy
2017-12-04 20:46:34
991
转载 java反射一些学习
反射应该是比较常用的一个功能,之前对这块只是照样画图,么有系统的学习。现在就让我讲一讲一些原理。 首先,什么是反射? 从网上了解到的,反射就是在运行时候,能通过一些手段得到该对象的所有(注意是所有哦)属性、方法;这种动态获取运行对象的属性和动态调用对象的方法的过程就叫做反射。 为什么要用反射呢? 原理是什么? 其实原理就是java反射机制提供了一些Java
2017-05-22 19:59:55
250
原创 idea编译出现超出方法数错误的解决方法
Android打包apk出现以下错误: Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 原因是Android应用的方法总数有限制,超过了打包就不成功。 具体是为什么呢? 原因是Android平台的Java虚拟机Dalvik在执行
2017-05-02 11:45:12
1411
原创 apk反编译方法
今天讲一下android app的反编译方法,一般借助工具要快捷些,不用记一些命令。 步骤如下: 1. 解压apk(将apk后缀名改为zip,直接使用解压工具解压),解压后有以下主要文件: (1)AndroidManifest.xml 是android的配置文件,打开是乱码。使用以下命令后可以看出版本的信息等: cd D:\Android\SDK
2017-05-02 10:54:54
302
原创 个人一些感悟
好久没有来写博客了。直接原因是工作比较多,没有时间。其实也是借口吧。有时候人总是给自己找借口,不能做,不想做,不敢做。有时候应该勇敢一点,自信一点,尝试做一些事情。哈哈~ 多想再提高一下自己,没有付出实际的行动。生活在不同的圈子会有不同的感悟,圈子里的优秀的人是你的榜样,但是不是每个在别人眼前优秀的人你都信服。因为他的优秀不是你所有喜欢的。人生在世除了真正的亲人、朋友是对你于包涵、为你着想的,其他
2017-04-25 12:58:21
334
原创 adb input 命令输入文本功能介绍
最近帮同事做一个播放器的播放验证功能。就是输入播放地址,点击播放看是否能正常播放、seek等。他给我一个apk,打开后界面是这样的: 一个文本框(需要收到输入播放地址),一个播放按钮。 看着是没有啥问题,不过我是运行到电视或者机顶盒上。头疼了,文本框?我每次要用遥控器输入播放地址,并且地址还很长,输错了还要重新输入,挺麻烦的呀。旁边的大师看到了,过来说:你可以用input命令,输
2017-03-31 10:31:50
25897
原创 认识registerActivityLifecycleCallbacks
今天无意中看到了Application提供了一个 方法,可以监控app内所有activity的生命周期,虽然现在没有用到,但是记录起来,不一定以后有什么用呢。 在Android4.0以后, registerActivityLifecycleCallbacks是Application的一个接口,注册之后应用里的所有activity的生命周期都会被监控起来,我们可以在此接口方法里实现一些特殊的需求
2017-03-20 15:21:24
7639
原创 Android context的理解(一)
在Android中每个程序都要和Context类打交道。包括程序内的service、activity都要用到这个上下文。今天就来简单说下这个context。什么是context?为什么要用context? 在官网定义了context是: 1、它描述的是一个应用程序环境的信息,即上下文。 2、该类是一个抽象(abstract class)类,Android
2017-03-20 14:00:25
346
原创 怎么分析内存泄露
上一篇《浅谈系统对app内存限制优化》说到了app占用内存大小可以通过设置largeheap提高系统的限制。但是这个不是万能的。我们应该对app的内存进行分析。避免内存泄露的情形。今天就来谈谈怎么看app是否与内存泄露和怎么分析。 常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。为什么会出现内存泄露?可以
2017-03-15 12:26:02
1226
原创 浅谈系统对app内存限制优化
上一篇《关于bitmap的一些知识》有提到: Android系统分配给每个应用程序的内存是有限的(在Android 3.1以及更高的版本中,可以在AndroidManifest.xml的application标签中增加一个值等于“true”的android:largeHeap属性来通知Dalvik虚拟机应用程序需要使用较大的Java Heap)。那么今天就来详细的讲解下 。 每个app
2017-03-14 10:09:35
1013
1
原创 关于bitmap的一些知识
最近在做一个弹幕的功能,涉及到弹幕头像、礼物等下载、缓存等。使用了开源的,做起来比较顺手。原因是该开源框架比较完善,调用者很容易上手,用起来和方便。在此就不说开源框架了,其实自己要写一个开源框架,最主要的是把原理弄懂。先谈一谈这个bitmap吧。有些知识是从网络摘操,因为写的很好。 bitmap是位图,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和
2017-03-10 18:16:59
644
1
原创 java的线程池ExecutorService简单介绍
做java的开发,线程是经常用的。最简单的使用大家都应该清楚,如继承Thread类、实现Runnable接口。这样,是没有问题。但是当我们需要频繁的处理一些任务时候,就要多次创建线程和处理线程关闭等回收工作。 这样比较麻烦。并且如果同时不限制线程格式,很多个任务一起执行,对性能有一定影响。所以,java提供了Executor线程池来处理并发任务,并且可以支持4种模式: 1.newCach
2017-03-05 22:32:53
473
原创 android绘制文本
android中怎么在画布上绘制文本呢?大家知道anroid提供了一个方法: public void drawText(String text, float x, float y, Paint paint) ; 这个方法中x,y不是指文本在cavas的左上角的位置,使用的时候要注意了。否则绘制出来的文本的位置和预想的不一样。 参考http://blog.
2017-03-02 09:28:38
757
原创 android绘制圆角矩形
android中可以绘制圆角矩形。 1.利用画布cavas绘制 如果提供了一个方法可以在画布上绘制圆角矩形: 函数名称:public void drawRoundRect (RectF rect, float rx, float ry, Paint paint) 参数说明: rect:RectF对象。
2017-03-01 09:25:22
17509
转载 SVG基本语法与标签介绍
本文转自 http://blog.csdn.net/dai_qingyun/article/details/52856919#t0 SVG(Scalable Vector Graphics)is an XML-based Language for creating graphics.SVG支持css,这一点有效的将图形和样式区分开。 SVG的应用: 1、绘图
2017-02-07 12:42:19
1092
原创 SVG图形初探
在Android 5.0支持了SVG图形,但是对于不常用SVG图形的我来说,还真不是怎么了解这个格式的图形。下面是我查阅一些资料找到的一些信息。 SVG是目前十分流行的图像文件格式了。是一种开放标准的矢量图形语言,使用SVG格式我们可以直接用代码来描绘图像,可以用任何文字处理工具打开svg图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到HTML中通过浏览器(如火狐浏览器
2017-02-06 17:19:21
492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人