自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Summer丶

记录个人日常工作总结

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 解决ViewPager与SwipeRefreshLayout滑动冲突

class MyViewPager : ViewPager { private var startX = 0f private var startY = 0f private var moveX = 0f private var moveY = 0f private var deltaX = 0f private var deltaY = 0f constructor(context: Context) : super(context)

2020-10-22 19:53:13 526

原创 Android Studio升级到4.1以后插件问题

当把Android Studio升级到4.1以后插件提示不可用,然后启动的报下面的错:错误的意思是该插件只支持IDEA,然后想把这个插件删除,发现在已安装的插件中是找不到这个插件的,如下:然后发现需要安装:然后就进入了死循环,启动的时候提示已经安装,但是无法使用,报错,删除的时候提示没有安装,无法删除。解决办法:找到Android Studio的插件安装路径,然后删除该插件的安装包或者jar文件即可。路径一般为:C:\Users\userName\AppData\Roaming\Googl

2020-10-15 11:13:29 5060 8

原创 Java和Kotlin泛型通配符

通配符Java 中用?表示通配符,由于参数值是未知类型的容器类,所以只能读取其中元素,不能向其中添加元素, 因为,其类型是未知,所以编译器无法识别添加元素的类型和容器的类型是否兼容,唯一的例外是NULLpublic static void main(String[] args) { List<?> data = new ArrayList<>(); data.get(0); //正确,可以读取 data.add("1"); //错误

2020-09-21 11:36:00 671

原创 [Java]深入理解泛型

概述Java泛型是JDK5中引入的一种参数化类型特性参数化类型解释:把类型当做参数一样传递泛型的副作用:<数据类型>只能是引用类型使用泛型后有以下的好处:代码更健壮(只要编译期没有警告,那么运行期就不会出现ClassCastException)代码更简洁(不用强转)代码更灵活、复用泛型的使用public static void main(String[] args) { ArrayList<String> list = new ArrayLis

2020-09-09 23:25:00 243

原创 [Java]反射和注解

注解的定义注解本身没有任何意义,单独的注解就是一种注释,他需要结合其他的反射、插桩等才有意义。Java注解(Annotation)又称Java标注,是JDK1.5引入的一种注释机制。是元数据的一种形式,提供有关于程序本身的数据。注解对他们注解的代码的操作没有直接影响。先定义一个注解:@Target(ElementType.TYPE)@Retention(RetentionPolicy.SOURCE)public @interface MyAnnotation { String value

2020-09-03 19:40:29 222

原创 [Jetpack]Lifecycle源码浅析

Lifecycle是android Jetpack全家桶中的一员,用来感知Activity、Fragment的生命周期变化,往往需要配合ViewModel和LiveData使用,防止在UI已经销毁时数据正在加载,从而导致内存泄露,极大的方便了我们开发,让我们更专注于业务。Lifecycle的使用1.首先需要引入如下的依赖:ext.lifecycle_version = "2.2.0"implementation "androidx.lifecycle:lifecycle-runtime-ktx:$

2020-08-25 17:17:11 260

原创 [java]静态代理和动态代理

什么是代理?代理(Proxy)是一种设计模式,提供了间接对目标对象进行访问的方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的功能上,增加额外的功能补充,即扩展目标对象的功能.这就符合了设计模式的开闭原则,即在对既有代码不改动的情况下进行功能的扩展。一般来说代理包含三部分:抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个接口真实角色:需要实现抽象角色接口,定义真实角色所要实现的业务逻辑,以便供给代理角色使用,也就是真正的业务逻辑实现在此。代理角色:需要实现抽象角

2020-08-18 15:10:46 700 1

原创 [Jetpack]DataBinding源码浅析

DataBinding源码探析创建DataBinding项目源码分析DataBinding的出现实现了数据和UI的双向绑定,极大的方便了数据更新时UI能同步显示,下面就以一个简单的Demo作为入口,简要分析一下DataBinding源码。创建DataBinding项目修改build.gradle文件android { //...... dataBinding { enabled = true }新建User类class User(name: Stri

2020-08-12 13:07:03 312

原创 Flutter实现拍照和相册选取图片功能

1.添加依赖在pubspec.yaml加入image_picker的依赖: image_picker: ^0.6.0+92.在main.dart导入需要使用的包 import 'package:image_picker/image_picker.dart';3.先实现一个FloatingActionButton先实现一个FloatingActionButton用于触发图片选择,完整...

2019-08-12 16:08:40 4797 1

原创 Android Studio3.0之NDK环境搭建

最近在公司项目中需要用到串口通讯扫描头,所以需要已有项目中进行NDK开发,故将NDK环境搭建过程记录,并编写测试demo验证。1.配置NDK环境下载ndk需要的工具:打开SDKManager 然后选择SDK Tools理论上以上三个都可以在这里下载并安装,如果下载失败,可以自行去浏览器下载,下载地址:https://developer.android.google.cn/ndk/downl...

2019-05-06 11:20:17 944

原创 Android app接入微信人脸支付详解

随着移动支付的多元化,越来越多的人喜欢使用刷脸支付,下面就微信人脸支付的流程进行分享。在接入微信支付时,需要做两个准备操作,第一,在项目中导入由微信提供的aar文件,第二,在运行你自己的app环境中安装微信人脸支付app。微信人脸支付调用流程如下:1.程序启动时初始化 initWxpayface //服务调用 WxPayFace.getInstance().initWxpayface(M...

2019-01-12 17:33:44 15753 95

原创 Process 'command '\***\build-tools\27.0.3\aidl.exe'' finished with non-zero exit value 1

在Android Studio中使用AIDL时,需要现在main下创建aidl包,然后将.aidl文件拷贝到该包下,目录如下: 然后在java包中写好对应的代码以后,编译发现报错,报错信息如下: Process 'command '\***\build-tools\27.0.3\aidl.exe'' finished with non-zero exit value 1点击左边会在右边...

2018-08-13 17:29:55 4759

原创 Android Studio3.0的V1,V2打包问题

近期,因为项目需要,所以将Android Studio升级到3.0,升级完以后在打包过程中出现了下面这个界面: 因之前在Android Studio 2.+版本中是没有这个界面的,所以便根据字面意思只勾选了V2,在测试过程中,用的测试机是android 7.1 版本,测试过程中没有遇到问题,后来需要适配新的机型时,通过界面安装时会安装失败,提示为apk解析失败,通过adb安装时,可看到错误信...

2018-08-11 10:15:21 1469

原创 Android没有EditText时如何获取外接扫码设备的输入值

在平时开发中,有EditText的情况下,扫描的输入值会输入到et中,我们可以通过如下代码来获取输入值:String value = editText.getText().toString();在外接扫描输入设备时,没有EditText的情况下,扫描设备的输入值相当于一个事件,所以首先需要在Activity中重写dispatchKeyEvent(KeyEvent event) 方法,并将返...

2018-04-14 12:18:34 3664 7

原创 Android library使用butterknife配置

使用butterknife8.4.0配置步骤: 在library配置butterknife8.4.0需要在项目gradle,主工程gradle、library的gradle中分别,如下: 1、在项目gradle中添加下列代码classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // 添加的部分classpath 'com...

2018-04-08 11:27:40 670

原创 JAVA实现指定区间取N个不重复随机数

近日在面试中多次被问到从规定区间取N个随机数的问题,所以今日将实现方式整理一下,代码如下:传统双重循环去重的方式 /** * 功能:产生min-max中的n个不重复的随机数 * * min:产生随机数的其实位置 * mab:产生随机数的最大位置 * n: 所要产生多少个随机数 * */ public static i...

2018-03-17 11:15:36 7471 1

原创 Android商家端线下支付流程详解

对于Android应用客户端来说,通常情况下的支付方式分为微信和支付宝两种,实现方式是通过接入微信和支付宝的SDK,调用手机已安装微信和支付宝应用来完成支付操作,并将支付结果回调给该应用,根据支付结果再做出的相应的处理,这样就完成了一次客户端支付流程。但是呢,Android应用还可以用于商家端,安装在商家门店设备上,用于和顾客日常收银交互(相当于简易版的POS),这时候,就无法再通过接入SDK...

2018-03-05 11:22:59 1626 1

原创 java实现AES加密和解密算法

在日常接口对接中,不可避免的要与各种加密算法打交道,AES也是较为常用的一种加密算法,下面直接上代码 加密算法:private static final String KEY_ALGORITHM = "AES";private static final String CIPHER_ALGORITHM_CBC = "AES/CBC/NoPadding";/** * 加密 * * ...

2018-02-27 14:21:43 2552

转载 程序员,该如何避免成为一个“油腻的怪物”

万物生灵,出生时都是萌新,年头多了难免会变得油腻,作为程序员的我们,该怎么做呢?10月31日,对于我们来说是个平常的日子,对于欧美等国来说,就是个盛大的节日——万圣节前夜。 我在这里不是要庆祝这个节日,也不是科普这个节日,毕竟这个节日和我们关系不大(不包括那些借节日营销的商家)。万圣节,即便我们不过这个节日,我们也都耳闻或眼见过一些影片、故事、新闻,所以在印象里最突出的是成群结队的熊孩子打扮成妖怪...

2018-02-27 12:14:29 213

二维码扫描和生成

简单的二维码的扫描和生成,使用Zxing工具,可作为参考

2016-03-03

空空如也

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

TA关注的人

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