- 博客(63)
- 资源 (27)
- 收藏
- 关注
原创 Java使用JWT 介绍和工具类
JWT一、简介1、JWTJWT为 Json Web Token,是一种令牌生成算法。使用JWT能够保证Token的安全性,且能够进行Token时效性的检验。2、JWT结构JWT共由三部分组成,分别是数据头(Header)、Payload(数据体)、验证签名(Verify Signature)组成。其中,Header中的内容为加密信息以及Token的类别,Payload为用户数据、Verify Signature为校验数据。
2023-02-02 15:38:46
1046
原创 Android 时间工具类
4、获取当前对应格式的日期 默认"yyyyMMddHHmmssSSS"1、日期转换为字符串 默认"yyyy-MM-dd HH:mm:ss"6、获取星期几,java中一周中的数字 转 常规一周中的数字。11、获取某月 所有日期(yyyy-mm-dd格式字符串)13、获取某周 所有日期(yyyy-mm-dd格式字符串)14、 计算两个日期之间相差的秒数。15、计算两个日期之间相差的天数。8、获取一个月的开始和结束时间。12、获取一周的开始和结束时间。9、获取一年的开始和结束时间。3、获取当前对应格式的日期。
2023-02-02 15:29:51
1088
原创 IDEA 安装详细 2022最新版
DEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,
2023-01-31 16:48:29
1700
转载 垃圾回收算法、回收机制与总结 ---JVM
垃圾回收算法、回收机制与总结 ---JVM一、垃圾回收算法1.标记清除标记--清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象。适用场景:对于存活对象较多的情况下比较高效 适用于年老代(即旧生代)缺点:容易产生内存碎片,再来一个比较大的对象时(典型情况:该对象的大小大于空闲表中的每一块儿大...
2021-04-10 21:37:23
129
原创 Error while executing: am start -n...错误解决 Android
报错如上;修改包名导致,项目这样,还有的是因为手机已安装了一个版本;解决方法:1.AndroidStudio 运行出现这个错误,因为你的Android系统中存在这个App,现在的手机真是高大尚,都有手机分身这一项了,解决方法如下:->卸载手机分身中的这个App,反正分身不分身的都卸载干净,之后再重新运行!!!!解决方案也很简单 ,打开app目录下的app.iml 删除掉 重新重启studio就行了...
2021-04-09 16:29:59
934
原创 java 中 IO 流分为几种?
从流的角度去划分:按照流的流向分,分为输入流和输出流; 按照操作单元划分,划分为字节流和字符流; 按照流的角色划分为节点流和处理流。所有流的基类InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。 OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。...
2021-02-22 10:52:36
264
原创 接口和抽象类有什么区别?
抽象类是用来捕捉子类的通用特性的,而接口则是抽象方法的集合;抽象类不能被实例化,只能被用作子类的超类,是被用来创建继承层级里子类的模板,而接口只是一种形式,接口自身不能做任何事情。其次,抽象类可以有默认的方法实现,子类使用extends关键字来继承抽象类,如果子类不是抽象类的话,它需要提供抽象类中所”...
2021-02-22 10:49:37
196
原创 抽象类必须要有抽象方法吗?
抽象类必须要有抽象方法吗?答:不需要,抽象类不一定有抽象方法;但是包含一个抽象方法的类一定是抽象类。(有抽象方法就是抽象类,是抽象类可以没有抽象方法)解释:抽象方法:java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。抽象方法与抽象类:当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为a
2021-02-22 10:48:17
8503
原创 普通类和抽象类有哪些区别?
抽象类不能被实例化抽象类可以有抽象方法,抽象方法只需申明,无需实现含有抽象方法的类必须申明为抽象类抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类抽象方法不能被声明为静态抽象方法不能用private修饰抽象方法不能用final修饰...
2021-02-22 10:47:41
190
原创 如何减少Android图片资源的大小,而不失真?
Android 图片推荐使用WebP格式的图片WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式。WebP既支持有损压缩也支持无损压缩。相较编码JPEG文件,编码同样质量的WebP文件需要占用更多的计算资源推荐:png以...
2019-01-11 14:49:23
462
原创 Android ExecutorService介绍
执行一个异步任务你还是new Thread吗?你知道使用new Thread的弊端吗?每次new Thread新建对象性能差。线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。缺乏更多功能,如定时执行、定期执行、线程中断。看了以上我推荐使用ExecutorService相比new Thread,Java提供的四种线程池的好处在于:重...
2019-01-11 14:48:29
1764
原创 Android 图片资源大瘦身
Android 图片推荐使用WebP格式的图片WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式。WebP既支持有损压缩也支持无损压缩。相较编码JPEG文件,编码同样质量的WebP文件需要占用更多的计算资源推荐:png以...
2019-01-08 17:52:08
411
原创 关于今日头条适配方案需要注意的
今日头条:一种极低成本的Android屏幕适配方式https://mp.weixin.qq.com/s/d9QCoBP6kV9VSWvVldVVwA自从看了今日头条的适配方案,就被这种容易操作,成本低廉的方案所吸引,大厂出品果然都是精品,大厂的开发在钻研技术上果然不是吹的。下面说下第一次使用今日头条的方案,感受:刚开始看到代码,方案理论,确实很好,++是以更改屏幕密度为核心++,直接把代码...
2019-01-08 15:33:51
1127
原创 Android权限申请----项目必备系列
随着Android6.0的发布,也带来了一些变革,说的就是在Android6.0里面运行时权限的处理,也就是SDK>=23的时候。在运行关于权限时在旧的权限管理系统-中,权限仅仅在应用程序安装时询问用户一次,用户同意了这些权限应用才能被安装(某些深度定制系统另说),应用程序一旦安装后一些不良厂商就可以可以偷偷的做一些不为人知的事情了,获取用户信息,对用户手机有很多危害。同时谷歌也意识...
2018-12-17 19:07:50
477
原创 Android 下 OpenCV的CvType
本地资源图片转换成垫Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.hhh);Mat mat = new Mat(bitmap.getWidth(),bitmap.getHeight(),CvType.CV_8UC4);Utils.bitmapToMat(bitmap,mat);这里需要特...
2018-11-21 18:12:58
1264
原创 Android 下OpenCV-安装无manage
本篇重点:1.open cv SDK安装讲解,无需安装OpenCV Manage.apk2.启动的OpenCV的时候if(!OpenCVLoader.initDebug()){//检查有没有Opencv的lib;没有添加SKD的情况下OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_2_0,this,mLoaderCallb...
2018-11-14 19:03:02
411
原创 Android TV开发NO.2--RecyclerView 焦点控制
Android TV中使用RecyclerView 焦点自动换行android TV使用 RecyclerView ,用焦点控制item首先在item中的xml中,的最外层添加 android:focusable="true",此句是为RecyclerView 的item添加焦点属性,添加完属性后,在RecyclerView 的 RecyclerView.Adapter中onBindViewHol
2017-12-29 15:02:20
2427
原创 Android 盒子开发,TV开发,经验总结NO.1
Android TV app开发与一般Android开发最大的区别在于焦点控制 , 用户在使用Android TV设备主要是通过遥控器操作app机顶盒TV应用不同于手机应用,因为多数是没有触摸屏的,只能靠遥控器,所以要保持一个焦点的位置,让用户知道当前操作作用的对象. 然而一些app,依据系统对focus的判断,会出现的状况: 上下导航时,不是想要的结果. 边缘移动时,会出现焦点丢失的
2017-12-28 14:53:07
6078
转载 Android APK安装包瘦身
感谢作者:博客地址很显然,APK安装包越小越好。下面从代码,资源文件,使用策略几个方面简要介绍下:代码保持良好的编程习惯,不要重复或者不用的代码,谨慎添加libs,移除使用不到的libs。使用proguard混淆代码,它会对不用的代码做优化,并且混淆后也能够减少安装包的大小。native code的部分,大多数情况下只需要支持armabi与x86
2016-04-19 18:33:39
711
转载 Android 框架设计
这篇文章主要内容来自于之前我讲的一个PPT文档,现在将其整理如下。欢迎指正。以下的内容都是来自于我自身的经验,欢迎大家多提自己的建议。1、一些概念模式的定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。什么是设计模式?设计模式是在
2016-03-14 18:30:35
639
原创 Android fastJson和Gson
在开发Android的过程中,如果我们经常与服务器打交道,更新数据等等,那么json必然是个好的数据格式,但是有了json我们要解析它,使用原生的解析也可以,但是很不高效,所以这里介绍两种json数据解析的方式,一种是FastJSon ,这个是阿里巴巴出的,号称最快的解析速度。第二种使我们伟大的Google提供的Gson 来解析json,两个解析json都很方便,而且都很强大,在我使用中,基本上都
2015-11-24 16:16:44
847
原创 HttpURLConnection连接 详解
1.HttpURLConnection连接URL进行网络连接前必须拥有对应的权限,所以我们需要在AndroidManifest.xml文件中添加访问网络的权限:http://developer.android.com/reference/java/net/HttpURLConnection.html1)创建一个URL对象URL url = new URL(http://www.baidu
2015-06-26 18:21:56
9112
原创 线程的
在android的设计思想中,为了确保用户顺滑的操作体验。一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务。因此我们必须要重新开启一个后台线程运行这些任务。然而,往往这些任务最终又会直接或者间接的需要访问和控制UI控件。例如访问网络获取数据,然后需要将这些数据处理显示出来。就出现了上面所说的情况。原本这是在正常不过的现象了,但是android规定除了UI线程外,其他线程都不可以对那些
2015-06-13 15:06:08
754
转载 【Android开源框架列表】
http://blog.daimajia.com/android-library-collection/ 原文地址在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者,而且我会不定期的更新这篇文章。首先感谢以下盆友对本文的捐助:*文光 2014/4/24*建宏 2014/3/16*洋
2015-05-05 16:05:36
1215
原创 Android 优化代码代码写作习惯代码规整
今天我想说说代码习惯:刚开始学Android时相信很多新手都会有一个疑问,我们作为菜鸟除了技术上的不足到底哪点比不上大神呢?相信问这个问题的新手,肯定是一个不服输的人(不能叫愤青吧,我认为愤青貌似是个贬义词)所以喜欢问问题,但是一些经验丰富的大神有的时候就会说自己百度,不行谷歌,这么简单的问题还问!这可能深深的伤害到我们菜鸟,但挺多时候是应该我们自己动手找自己研究,其实作为菜鸟不是不喜
2015-04-30 17:07:46
1114
转载 Android 线程池详解
线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。比如:一个应用要和网络打交道,有很多步骤需要访问网络,为了不阻塞主线程,每个步骤都创建个线程,在线程中和网络交互,用线程池就变的简单,线程池是对线程的一
2015-04-29 11:31:19
782
原创 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入
public class Arith { /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。 */ // 默认除法运算精度 private static final int DEF_DIV_SCALE = 10; // 这个类不能实例化 private Arith() { } /** * 提供精确
2015-04-25 17:10:08
1546
原创 优化多个Fragment切换出现的问题FragmentTabAdapter
我们在开发过程中经常会用到多个Fragment之间进行切换,刚开始是有一些开发者可能会用到这种单例方法:if (mFragment != null) {ft.hide(mFragment);}这种方法避免了多次多fragment进行实例化,实例化一次多次使用的优化方法,但是用这个话,经过我们测试的工作者的暴力测试就会出现问题,比如:多个fragment乱串的问题,因为这个用做的
2015-04-25 15:18:19
2527
1
原创 RadioButton解决文字和drawableleft和文字一起时不居中
/** * 解决文字和drawableleft和文字一起时不居中。要设置 android:background="@null"android:button="@null" * @author zhousheng * */public class MDMRadioButton extends RadioButton { public MDMRadioButton(Context co
2015-04-25 15:14:08
4415
原创 android 数据库使用之OrmLite
今天说的是数据库,我看了下别人大神的解决,结合我自己实际中用到的给大家讲解下ormlite数据库的使用这个是需要导入的第三方jar包,用过goolge的SqliteOpenHelper的都知道开始要继承OrmLiteSqliteOpenHelper这个类(这个谷歌官方的数据库有点类似). 重写它的onCreate(SQLiteDatabase sqliteDatabase,
2015-04-25 11:43:25
1390
原创 Service_Android四大组件之一
1.Service是什么Service是Android的四大组件之一,即Android系统的服务(不是一个线程,是主程序的一部分),与Activity不同,它是不能与用户交互的,不能自己启动的,需要调用Context.startService()来启动,运行后台,如果我们退出应用时,Service进程并没有结束,它仍然在后台行。比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当我们退出播
2015-03-30 14:20:44
983
原创 HTTP协议,Http协议基础概念
HTTP协议的学习重点:Http协议基础概念、请求响应模型、提交请求的不同方法、响应状态判断、获取响应以及解析响应、数据下载的实现方法、数据上传的实现方法、请求头详细内容、响应头详细内容等关于http协议的学习,推荐两个链接:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.htmlhttp://blog.
2015-03-30 14:18:44
3217
转载 HTTP请求头与响应头
一、HTTP头引入:正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度。通常HTTP消息包括:客户机向服务器的请求消息和服务器向客户机的响应消息。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息
2015-03-07 14:27:01
776
原创 Android SQLite 数据库的详解
QLite采用动态数据类型,当某个值插入到数据库时,SQLite将会检查它的类型,如果该类型与关联的列不匹配,SQLite则会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储,SQLite称这为“弱类型”。但有一个特例,如果是INTEGER PRIMARY KEY,则其他类型不会被转换,会报一个“datatype missmatch”的错误。SQLite支持NULL、INTE
2015-02-27 10:41:43
1097
1
原创 BroadcastReceive广播接收器:
BroadcastReceive广播接收器:public class Test extends Activity{ private final String ACTION_NAME = "发送广播"; private Button mBtnMsgEvent = null; protected void onCreate(Bundle savedI
2015-02-26 10:45:29
1348
1
原创 PopWindow的使用方法之一
private void initPopWindow(final TextView tview) { final String[] name = { "份", "斤", "个", "人", "桌", "只", "半份", "小份", "大份", "两", "半只", "锅", "碗", "壶", "打", "瓶", "杯", "听", "罐", "例", "套", "串" };
2015-01-23 15:58:21
852
原创 处理照片工具ImageTool
/** * Tools for handler picture * 工具来处理照片 * @author Ryan.Tang * */public final class ImageTools { /** * Transfer drawable to bitmap * 转让可拉的位图 * @param drawable * @return */ public
2015-01-15 12:09:41
4789
深入OpenCV Android应用开发中文高清完整版PDF
2018-11-21
fastJson和gson的用法
2015-11-24
drawer , drawer menu , slide out , 拉出菜单 , 抽屉菜单 , 抽屉视图
2014-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人