自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (3)
  • 收藏
  • 关注

原创 (三)区块链钱包之加密算法简介

钱包作为用户隐私数据不可以对其进行直接保存,更不可以上传服务器,所以如何处理来管理钱包需要慎重。

2021-05-20 18:45:57 1105 2

原创 (一)区块链钱包之生成助记词

助记词明文私钥的另一种表现形式,最早是由 BIP39 提案提出,其目的是为了帮助用户记忆复杂的私钥 ( 64 位的哈希值)。助记词一般由12、15、18、21个单词构成,这些单词都取自一个固定词库(2048个),其生成顺序也是按照一定算法而来,所以用户没必要担心随便输入 12 个单词就会生成一个地址。生成过程生成一个128位随机数,再加上对随机数做的校验4位,得到132位的一个数,然后按每11位做切分,这样就有了12个二进制数,然后用每个数去查BIP39定义的单词表,这样就得到12个助记词(当.

2021-05-20 15:59:31 4579 5

原创 从源码分析Handler机制

一、发送消息当发送一个消息,在handler里面最后会执行方法: private boolean enqueueMessage(@NonNull MessageQueue queue, @NonNull Message msg, long uptimeMillis) { msg.target = this; msg.workSourceUid = ThreadLocalWorkSource.getUid(); if (mAs

2020-12-02 16:39:02 176 1

原创 反编译apk文件,查找jar文件中字符串

package com.lzxx.testdemo.util;import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Enumeration;import java.util.List;import java.util.zip.ZipEntry;import java.util.zip.ZipF

2020-12-02 15:45:10 722

原创 IPC通信方式

aidl是IPC机制的一种解决方案,使用起来相对Messenger等稍微复杂,简单例子如下:1、服务端首先创建服务端的应用,app/src/main下创建aidl文件,这里只定义了一个方法,传进来一个字符串,经过服务端处理在返回给客户端:package com.lianzhuoxinxi.baoduoduo;import com.lianzhuoxinxi.baoduoduo.User;interface IMyAidlInterface { String getName(Stri

2020-12-01 18:10:44 441

原创 Mac中git忽略DS_Store文件

1、命令行执行vi ~/.gitignore_global2、在打开文件中写入.DS_Store.DS_Store?.Spotlight-V100.Trashesehthumbs.dbThumbs.db3、保存后再次执行git config --global core.excludesfile ~/.gitignore_global

2020-11-10 19:26:00 108

原创 RSA加解密及分段加解密

package com.xxx;import android.util.Base64;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.nio.charset.Charset;import java.nio.charset.StandardCharsets;import java.security.In

2020-11-09 14:57:00 241 2

原创 创建线程的方式以及Executors的四种线程池

创建线程有几种方式?面试常问的问题,一般回答3种方式,及格;如果你能具体的说4种,那你就满分了,第四种是通过Executors创建线程池。先来说说创建线程的3种方式:一、继承Thread类public class ExtendsThread extends Thread { @Override public void run() { super.run(); Log.e("ExtendsThread >>> ", "thread r

2020-11-05 16:13:17 259

原创 Java和go加密,解密,Base64失败

在客户端和go后台对接口的时候,加解密出现了问题记录。问题主要出现在base64上,刚开始Android使用import android.util.Base64;public class AesUtil { public static String encryptEcb(String content, String key) { if (TextUtils.isEmpty(content) || TextUtils.isEmpty(key)) return ""; try {

2020-11-04 15:27:05 1645

原创 Android实时监测网络连接状态及网络是否可用,类似微信的功能。

实现实时监控网络变化,类似于微信的功能,当网络不可用时app能实时感知到,网上找了很多例子并不能实现,或者只实现其中一部分功能,我就参考大家的方法做一个组合。一、网络状态变化监测,此方式只能监测网络连接改变,不能判断是否可用(例如网络连接正常,但是不能访问网络)。在使用时定义一个方法,名字随便,参数必须是一个NetWorkState类型:// 监听网络变化类型 @NetWorkMonitor(monitorFilter = {NetWorkState.WIFI, NetWorkState.GP

2020-10-27 17:10:06 2188

原创 关于Android Q 的文件分区存储权限适配研究

我们发现每安装一个应用,你的手机文件管理中就会创建很多文件夹,而且应用卸载文件夹还在,里面的文件也在,手机用着用着文件系统越来越庞大,最后就是卡顿。在Android 10 新特性中有一个保护外部存储设备中的用户数据,应用可以将自己的文件存储在专用沙盒中,另外就是可以访问公共文件夹,比如Download、DCIM、Music等,这样就不会在/storage/emulated/0/下面创建很多文件夹,你也不能随便访问别的应用文件夹。Android 10虽然加入了此特性,但是Google肯定会考虑给开发者

2020-08-27 11:54:42 546

原创 Android关于设备唯一标识符的获取,适配Android10

在开发中我们需要获取一些设备信息,比如设备宽高、分辨率、IMEI、MAC地址等,有一些设备信息是不会变化的,有一些会随着系统的升级改变,而且还会受权限的影响。在实际开发中也踩过不少坑,经过测试、研究得出一些结论,希望能帮助到大家,同时也作为一个学习记录。

2020-08-26 18:18:09 2273 2

原创 Android获取网络类型--最新最全版

public static String getNetworkState(Context context) { ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); // 获取网络服务 if (null == connManager) { // 为空则认为无网络 return NETW

2020-08-25 09:07:17 2437 2

原创 关于集合去重的学习总结

以List为例:List<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");list.add("d");list.add("e");list.add("a");list.add("b");list.add("c");1、最容易想到的就是两层for循环for(int i = 0; i < list.size(); i++) { for(int j = 0;

2020-08-22 09:39:08 153

原创 SQL语句

1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create t

2020-07-06 15:37:42 160

原创 RecyclerView的Item复用导致动画不执行问题

场景:在RecyclerView的item中的某个控件在状态0时执行动画,其他状态下不执行。实现方式:判断状态0时给view设置动画,我采用补间动画。问题:在滑动的时候,划到下面再滑倒上面,上面刚才执行的动画不动了,这是由于itemView在离开屏幕的时候,view自身会把它的动画置空。那么我们就可以考虑在view依附在窗口的时候执行动画: if (holder.timerView.getTag() instanceof View.OnAttachStateChangeList

2020-06-20 18:16:09 2470 1

原创 日期Date操作的优化

一般我们对日期的操作使用的类有Date、DateTimeFormat、Calendar,在进行日期格式操作时一般用DateTimeFormat比较多,我们知道Date出来的数据格式是Mon Jun 15 11:00:59 CST 2020我们想把它转换成易读的格式,使用DateTimeFormat:public void test() { Date date = new Date(); SimpleDateFormat formatter = new SimpleDateFormat

2020-06-15 18:28:20 317

原创 ThreadLocal分析和使用

ThreadLocal是一个多线程情况下为独立线程存储数据的类。这样说可能不太好理解,下面通过一个例子来看清晰明了:private ThreadLocal<Integer> local = new ThreadLocal<>();private int i;@RequiresApi(api = Build.VERSION_CODES.N)private void threadLocal() { IntStream.range(0, 5).forEach(valu

2020-06-15 18:12:43 177

原创 RecyclerView和ListView区别

RecyclerView:1、规范了ViewHolder,内部实现了缓存机制;2、实现多种效果,横向/纵向,线性/网格/瀑布流;3、不能设置EmptyView;4、不能设置HeaderView和FooterView;5、可以局部刷新6、自带动画,可以自定义,继承ItemAnimator;7、没有item事件,需要自己定义;8、实现了NestedScrollingChild,可以实现嵌套滚动,例如配合CollapsingToolbarLayout使用;ListView:1、需要自定义Vie

2020-06-05 17:01:43 271

原创 Socket.IO实现聊天功能

我们知道OkHttp3中有WebSocket可以实现聊天功能,但是我们需要自己定义前后台交互协议,比较麻烦,而Socket.IO完美的帮我们定义好了这个协议,用起来相当简单。Soket.IO文档在Github上都有1、为连接做准备,一般在代码块中。这里options可以设置一些其他参数,比如重连(默认true),重连次数等。 { try { IO.Options options = new IO.Options(); options.t

2020-06-04 18:06:37 463

原创 调用相机拍照奔溃

Couldn’t find meta-data for provider with authority xxx.fileprovider在调用相机拍照的时候出现了这个问题,Android 7(24)以上调用相机的完整操作是:1、调用相机方法:Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (Build.VERSION.SDK_INT < Build.VERSION_

2020-05-28 14:18:18 459

原创 OkHttp3网络请求(三)之下载篇

1、OkClient.javapublic class OkDownload { private static OkDownload instance; private Handler mHandler; private OkHttpClient okHttpClient; private DownloadInterceptor interceptor = new DownloadInterceptor(); private OkDownload() {

2020-05-26 17:11:01 423

原创 OkHttp3网络请求(二)之拦截器

OkHttp3网络请求上一篇已经简单介绍了,之前看鸿洋大神的博客学习OkHttp的使用,这里记录一下学习成果。关于拦截器的介绍这里就不介绍了,直接使用:RequestInterceptor.javapublic class RequestInterceptor implements Interceptor { /** * headerLines 参数List */ private List<String> headerLinesList = new A

2020-05-26 17:04:23 657

原创 OkHttp3网络请求(一)

OkHttp3使用导入依赖:implementation 'com.squareup.okhttp3:okhttp:4.6.0'wiki:点击进入Github一、GET请求1、创建OkHttpClient对象,最好使用单例模式: okHttpClient = new OkHttpClient.Builder() .retryOnConnectionFailure(true) .connectTimeout(time_out, Tim

2020-05-26 16:33:37 405

原创 使用反射暴力访问私有属性

try {Class clazz = Class.forName(“package.ClassName”);Object instance = clazz.newInstance();Field field = clazz.getDeclaredField(“privateFiled”);field.setAccessible(true);field.set(instance, true);Object filed= field.get(instance);// filed即为获取到的私有属性

2020-05-09 18:22:16 476

原创 第三方登录 QQ登录时 No permission to write APN settings问题

Android集成原生QQ登录功能时,出现No permission to write APN settings错误,在IUiListener的三个方法都不回调,并不是因为什么缺少WRITE_APN_SETTINGS权限,而是我们需要在onActivityResult中再添加两行代码:@Override protected void onActivityResult(int reques...

2020-04-08 13:55:00 1809 2

原创 Error inflating class android.webkit.WebView NotFoundException: String resource ID #0x2040002

在Android 5.0.1手机上出现WebView加载出错问题,具体报错信息:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lianzhuoxinxi.baoduoduo/com.lianzhuoxinxi.baoduoduo.ui.other.WebViewActivity}: android.v...

2020-02-04 15:15:20 2637

原创 Android画对号动画

把mCircleValueAnimator的duration设置大于零可以先画背景再画对号,修改画笔样式可以把背景化成圈或者纯色背景。package com.lianzhuo.qukanba.widget;import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import an...

2019-10-30 10:58:36 1032

原创 Aes加密及向量补码,InvalidAlgorithmParameterException异常expected IV length of 16 but was 8

前提:AES加密向量是16位,DES加密向量是8位。由于Android端项目落后,后台(python)和iOS已经调试完毕,用aes加密,向量8位。我在调试的时候怎么都过不了,总是出现InvalidAlgorithmParameterException异常,后来查阅资料加上分析应该是python和ios有自动补码功能,而且补码规则是统一的,很有可能Java没有所以才会出现这个异常。这里经过分析...

2019-10-30 10:44:02 1517

原创 Android调用系统分享,资源未找到问题

Android调用系统的分享来分享网络图片,是不能直接分享网络图片的,需要把图片保存到本地:// 保存图片public static void saveBitmap(Bitmap bitmap, String filePath, String fileName) { File headDir = new File(filePath); if (!headDir....

2019-10-22 15:14:50 1194

原创 RecyclerView分页加载

recyclerview分页加载,需要重写OnScrollListener。activity:public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private MainAdapter adapter; private ProgressBar ...

2019-09-26 23:52:33 3854

原创 Android动态设置引导页,支持在任意Activity、Fragment上

这是一个组件,很灵活的运用在任意一个项目中,支持在Activity和Fragment上显示,可以设置显示次数,也可以设置每次启动都显示等,基本可以满足所有的Android开发需求。下载传送门...

2019-07-31 16:14:09 474

原创 TextView的展开收起、自定义ViewGroup使第二个子View紧跟第一个子TextView的内容显示

文本的展开收起常见,第二个View紧跟TextView后面显示也常见;但是,纵观全网好像没有找到比这个更复杂的需求了,此需求把两者糅合在一起了。

2019-07-31 12:14:25 377

原创 RecyclerView的item有EditText时复用问题,及RecyclerView.Adapter的onBindViewHolder参数position不能final。

RecyclerView已经基本替代了ListView和GridView成为开发中使用最多的控件,在使用的过程中遇到的问题在此记录一下。1,RecyclerView的item中有EditText时,当你在某个item的EditText输入内容之后滑动的话,由于复用就会导致你输入的内容出现的复用的新item中,再滑回去可能你刚才输入的内容就没有了,这个肯定不行的。解决办法:a,最简单的是把Edi...

2019-07-17 10:37:51 1865

原创 Android自定义滚动选择器,简单易学

最近做项目有一个需求是选取食材的时候需要设置配量,通过滚轮来选择,如下:项目中原来有一个轮显示数字,一个显示单位的功能,我就在此基础上做了一个封装,基础控件是WheelPicker.java,发现这个思路还是不错的,有很强的可操作性,这里我写了一个demo,效果图如下:这里顺便用到了上一篇文章讲的Dialog的使用。demo地址...

2019-06-24 15:37:50 671

原创 使用Dialog实现PopupWindow效果

效果图:Dialog的使用对Android开发者来说再经常不过了,这里分享一种简单又灵活的使用方式。一、我们最好写一个工具类,用的时候直接调:public class DialogUtils { public static void showDialog(Context context, final OnTextClickListener onTextClickListener)...

2019-06-21 19:00:51 717

原创 关于设置状态栏字体颜色,判断MIUI、flyme系统的一些总结

项目中很多时候所有页面不会都是一个主题色,所以就有了如何设置状态栏字体颜色的需求,经过不断测试,今天就总结一下我的经验,与大家共同学习分享。

2019-05-29 15:59:35 2052

原创 关于MVP的学习总结

关于什么是MVP,以及它的原理我就不拷贝了,这里主要写一下学习体会和总结吧!本例是结合Retrofit请求的,可能代码不全。大概步骤:一,M V P三个基类BaseModel// 就是一个接口,啥也没有。public interface BaseModel {}BaseView// 还是一个接口,啥也没有public interface BaseView {}Bas...

2019-05-28 19:41:44 230

原创 自定义View实现通讯录和索引联动,如丝般顺滑

1,右边索引导航我自定义一个View:WordsNavigator.javapackage com.txhl.testapp.cus;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Canvas;import android.graphics.P...

2019-05-23 17:45:38 601

原创 沉浸式状态栏,包括折叠布局的顶部显示到状态栏

1、一般沉浸式状态栏a、在BaseActivity.java中设置一系列参数。public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(...

2019-04-01 17:52:50 1034

android实时监测网络连接及是否可用

当网络连接状态变化时回调状态信息,以及能判断网络是否可以访问公网。此方法是经过测试可以正常使用,如果有问题欢迎留言交流。分享技术,共同提高。

2020-10-27

DeviceU.java

此类提供了获取设备id、imei、mac地址、当前系统版本、系统语言、UUID、运营商、IMSI、设备类型、生产商、品牌、型号、屏幕宽高、经纬度。

2020-08-26

Android引导图设置,灵活调用,多种模式设置。

此组件可以灵活的在任意页面(包括Activity、Fragment)中加载引导布局,直接调用即可,可设置多种参数,完全满足基本的Android开发中的引导图需求。

2019-07-31

空空如也

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

TA关注的人

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