自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java源码解析-动态代理

1、Proxy.newProxyInstance()的实现public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentExce

2020-12-05 17:03:17 231

原创 DataBinding使用及其原理

DataBinding的意义1、布局文件通常只负责UI控件的布局工作,页面中通过代码对控件需要进行各种操作,承担了绝大部分的工作量2、DataBinding让布局文件承担了部分原本属于页面的工作,也使得布局文件和页面的耦合度进一步降低3、使得UI控件能够直接合数据模型中的字段绑定,甚至能响应用户的交互。方便实现MVVM一、DataBinding简单使用1、启动DataBinding在模块下的build.gradle文件中,启动dataBinding。如果没有该命令,请升级版本android {

2020-12-05 16:38:37 3156

原创 深入了解注解及其使用

深入了解注解及其使用注解是什么注解是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰。注解对于它所修饰的代码并没有直接的影响。1、什么是元注解用于对注解类型进行注解的注解类,称之为元注解。JDK1.5中提供了4个标准元注解。@Target: 描述注解的使用范围,说明被它所注解的注解类可修饰的对象范围@Retention: 描述注解保留的时期,被描...

2020-02-13 09:54:02 396

原创 Retrofit原理、作用及使用探索

Retrofit使用及原理探索1、Retrofit基本使用1.1、创建接口public interface Github { @GET("/repos/{owner}/{repo}/contributors") Call<List<Contributor>> contributors( @Path("owner") String owner, @Path("repo") String repo); cl

2020-12-10 00:24:23 313

原创 Java反射类

Java反射工具类1.反射静态方法2.反射成员方法3.反射成员get/set4.反射静态成员get/setimport java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * 反射工具类 * @author ...

2019-06-17 21:37:49 154

原创 Gradle学习(三):Android Gradle插件

本篇将讲述Android Gradle插件在实际项目中的使用,以实际使用为例1、引如Android Gradle插件引入第三方插件的方法:根build.gradle中:buildscript{ repositories { jcenter() } dependecies { classpath 'com.android.tools.build:gradle:1.5.0'...

2019-05-27 00:47:23 200

原创 Gradle学习(二):Gradle基础

Gradle是基于Groovy语言的DSL,用于项目构建。与Ant和Maven相比的优势在于本身是一门语言,可以做一些特定逻辑,灵活许多Gradle生命周期Gradle生命周期分为三个阶段:1.初始化阶段:生成project对象2.配置阶段:生成task对象,并完成task拓扑图3.执行阶段:执行任务以及依赖的所有任务生命周期相关API://配置阶段开始前this.befo...

2019-05-07 21:41:52 251 1

原创 Gradle学习(一):Groovy基础

Groovy是基于JVM的虚拟机的一门语言,语法和Java很相似,并且完全兼容Java。Java上能写的代码在Groovy中是可以运行的。但同时Groovy引入了闭包,增加了许多特性使用起来较为灵活方便。Gradle脚本使用的是Groovy语法,具备Groovy基础对于学习和使用Gradle是十分重要的。本篇将简要写一些常用的Groovy语法相关知识,便于看懂Gradle脚本的一些常用写法字...

2019-05-05 22:34:58 193 1

原创 Java线程池使用

Java线程池线程池:线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。当调用 execute() 方法添加一个任务时,线程池会做如下判断:1.如果正在运行的线程数量小于 corePoolSize,那么马上创建线程运行这个任务;2.如果正在运行的线程数量大于或等于 corePoolSize,那么将这个任务放入队列。3.如...

2019-04-30 12:25:59 120

原创 MySQL必知必会-数据查询

数据库的学习我认为就是包含两方面:1、如何建库建表,达到高效2、如何查询到所需的数据本文将着重写的是基础概念以及如何查询数据的部分,如何建库建表的部分后续将在另外的文章写基本概念结构数据库: 一个以某种有组织的方式存储的数据集合表:一种结构化的文件,可用于存储某种特定类型的数据列:表中的一个字段行:表中的一条记录主键主键:一列(一组列),其值能唯一区分表中的每个行...

2018-12-02 16:04:30 541

原创 Android图像处理(一) 颜色变换

图像的变化通常是使用矩阵运算去实现,在Android中也不例外。本文将通过使用Android中的ColorMatrix矩阵对图片的颜色进行操作,实现对图片进行颜色上的调整。改变图像属性基本概念色调:物体传递的颜色饱和度:颜色的纯度亮度:颜色的明暗程度在PS软件中常通过调整这三个图像属性调整图片,在Android中可以通过ColorMatrix实现实现方法 mSrc = B...

2018-12-01 16:25:06 1302

原创 Android守护进程

守护进程守护进程: 一直在后台运行的进程。本文主要讲解一些android比较常用的守护进程的方法。实现思想:1.保活,通过提高进程优先级,降低进程被杀死的概率2.拉起,进程被杀死后,进行拉起相关基础知识Android进程优先级在Android中,进程粗略的分成五个等级,分别是:1.前台进程2.可见进程3.服务进程4.后台进程5.空进程此类相关知识可以在http...

2018-11-07 22:59:14 7558 3

原创 Android监听、屏蔽多任务键方法

Android监听、屏蔽多任务键 有时候是会有比较流氓的需求要求屏蔽多任务键,返回键等操作的,屏蔽返回键可以通过监听返回键的回调直接替换掉原先的操作即可。但多任务键有点特殊,需考虑其他方法。这里使用的是通过监听Intent.ACTION_CLOSE_SYSTEM_DIALOGS广播判定是否按了多任务键,之后通过在onPause中执行activityManager.moveTaskToFro...

2018-06-25 13:20:11 4150 2

原创 Android常用工具类总结(一)应用国家,安装天数,版本号,是否debug获取

应用国家安装天数获取应用安装天数获取 记录应用第一次启动的时间,从而当前安装天数,需在应用启动时调用刷新存储的数据import android.content.Context;import android.content.SharedPreferences;/** * 用户数据记录 * 记录首次安装时间 * 记录升级首次启动时间 * Created by zhuxi...

2018-06-25 13:09:03 374

原创 Android Service全面总结

Service 1、Service是什么 2、Service的生命周期(startService和bindService) 3、Service的类型 4、Service和Thread的关系 5、IntentService原理1、Service是什么 提供需要在后台运行的服务(理解后台和使用Thread的区别) 特点:无界面、后台运行、生命...

2018-06-24 16:08:39 199

原创 GreenDao数据库框架的使用

GreenDAO框架使用 GreenDAO是一种Android数据ORM(object/relational mapping)框架,与OrmLite、ActiveOrm、LitePal等数据库相比,单位时间内可以插入、更新和查询更多的数据,而且提供了大量的灵活通用接口。GreenDAO的效率之高主要是因为GreenDAO所采用的实现方式是生成代码而不是使用注解反射之类的手段。Gree...

2018-03-27 09:00:55 290

原创 腾讯Ai开放服务接入

1.接口调用通用形式相关网址:https://ai.qq.com/doc/auth.shtml 如腾讯Ai给出的示例,其中app_id, time_stamp, nonce_str, sign为发起对腾讯Ai各种Api都需要加入到post请求的数据。而key1,key2则根据不同Api会有不同。如下面的OCR通用文字识别Api 图中唯一不同于示例的是把key1,key2换成...

2018-03-02 21:04:51 5918

原创 Activity的生命周期和启动模式

1.Activity的生命周期a.典型情况下的生命周期Activity启动—&gt;onCreate—&gt;onStart—&gt;onResume—&gt;onPause—&gt;onStop—&gt;onDestroy onStop后重新启动则要先调onRestart再调onStart 其中,onStart,onStop和onResume,onPause看起来差不多,甚...

2018-03-01 21:41:36 200

原创 Android端基于OpenCV边缘识别技术

本文所采用的技术大体来源于网络上另一作者的开源项目,https://pqpo.me/2017/09/11/opencv-border-recognition/#reward,只是对其智能裁剪部分做了优化。所以本文之着重讲述优化部分,具体环境搭建则不细写了,原作者已经写的很详细了。OpenCV 的全称是 Open Source Computer Vision Library,是一个使用 C++

2018-01-31 16:36:22 4596 6

原创 C++基础知识(五)类进阶:模板类

在某些场景下,继承和包含并不总是能满足重用代码的需要。比如,容器类。容器类设计用来存储其他对象或数据类型。 比如如下的Stack类:Stack.h#ifndef STACK_H_#define STACK_H_#include using namespace std;typedef unsigned long Type;class Stack{private:

2018-01-31 11:34:51 255

原创 C++基础知识(二)C++类基础

目录 1.类的定义 2.类的两种实现方式 3.对象的定义和对象成员的使用 4.构造函数和析构函数 5.堆对象 6.public,private,protected的使用 7.特殊成员函数 8.自定义String类1.类的定义 类是一种抽象数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。因此,类的定义一般包含

2018-01-30 14:29:12 345

原创 Ndk基础知识(二)Ndk基本使用流程

ndk基本使用

2018-01-24 16:32:21 352

原创 NDK基础知识(一)环境搭建

1. AndroidStudio的NDK环境搭建下载相关资源包,NDK,CMake,LLDB 使用AndroidStudio中的SDK Manager下载即可 安装完成后,AndroidStudio将自动配置好上述资源,前提当然是使用AndroidStudio下载接下来创建一个新项目,记得勾选上Include C++ support这一项,AndroidStudio才会自动配置好C+

2018-01-22 08:55:07 251

原创 C++基础知识(四)类进阶:抽象类和接口

抽象类:类中存在没有实现的方法,不能实例化 接口:类中的方法都没有实现。 在C++中,抽象类则说明类中有一部分方法是纯虚函数,接口则说明类中所有方法都是纯虚函数。 纯虚函数:方法没有函数体。在声明后面加上”=0”例子:#include using namespace std;class Shape{ public: //纯虚函数 virt

2018-01-05 22:52:02 161

原创 C++基础知识(三)类进阶:多态

什么是多态? 相同对象收到不同消息或不同对象收到相同消息时产生的不同的动作。在C++的类中,有着静态多态和动态多态。静态多态指的是函数的重载,而动态多态指的是晚绑定。静态多态class Rect //矩形类{public: int calcArea(int width); int calcArea(int width,int height);

2018-01-05 22:29:45 256

原创 C++基础知识(一)基础知识

基本数据类型 C++基本类型的最小存储空间 bool 类型 char 字符型 8位 wchar_t 宽字符型 16位 short 短整型 16位 int 整形 16位 long 长整形 32位 float 单精度浮点型 6位有效数字 double 双精度浮点型 10位有效数字 long double 扩展精度浮点型 10位有效数字

2017-12-27 20:39:11 378

原创 Handler机制

Handler机制

2017-08-24 20:32:11 238

原创 Android属性动画

Android属性动画,自定义属性动画

2017-08-24 20:10:41 213

原创 Android自定义View

Android自定义View

2017-08-18 07:26:56 300

原创 ViewFilpper的使用

ViewFlipper使用,android

2017-08-16 10:03:41 349

原创 AIDL基本使用(二)

AIDL基本使用(二) 将观察者模式和AIDL结合

2017-08-10 07:49:19 407

原创 AIDL的基本使用(一)

AIDL的基本使用

2017-08-09 07:31:27 444

原创 Android Messenger实现IPC通信

Android Messenger实现IPC通信

2017-08-08 07:37:07 452

原创 ContentResolver查询音乐目录

ContentResolver查询音乐目录

2017-07-22 17:09:54 1238

原创 ViewDragHelper使用

ViewDragHelper基本使用

2017-07-22 16:32:51 230

原创 Android动画实现(一)

Android自定义View实现动画

2017-07-16 20:27:15 231

原创 Spring-data-jpa生成表格失败的可能原因

一、配置错误 spring-jpa-properties-hibernate-hbm2ddl-auto=update 如果是设置成create则是每次启动都创建新表,可能造成数据丢失,如果是create-drop则是关闭时删除表。 二、表格字段中使用了mysql的保留字,如不起眼的”desc”,如果存在字段名称为desc则会自动创建失败,修改字段名就可以了 三、当写类似@Column等注解...

2016-12-28 10:04:21 3134

原创 SpringBoot搭建微服务(二)实现MVC

SpringBoot搭建微服务(二)实现MVC

2016-12-14 16:32:03 4353

原创 SpringBoot搭建微服务(一)HelloWorld!

SpringBoot微服务HelloWorld

2016-12-14 15:38:04 3662

原创 JAVA中的final探究

final使用

2016-08-10 16:23:46 331

运行时注解实现控件注入

android注解使用,采用运行时注解以及java反射实现控件注入功能。注意:此demo只实现了简单的控件注入,作为演示注解使用。大家可参考这个实现完善出布局注入,事件注入等功能哦

2020-02-13

手写注解处理器实现Android控件注入功能

android中使用apt注解器实现类似butterknife的控件注解绑定控件id,本案例代码使用了编译时注解,利用注解处理器,以及javapoet生成代码技术,实现activity控件id绑定

2020-02-13

守护进程Demo

守护进程案例,使用了灰色保活,双进程守护,JobSchedule等一系列方式守护住进程,亲测,效果还不错

2018-11-07

腾讯Ai请求示例

腾讯Ai人工智能Api请求示例java代码,其中包括ocr识别,名片识别,花草车辆识别,翻译,看图说话等接口使用

2018-03-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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