- 博客(57)
- 资源 (3)
- 收藏
- 关注
原创 (一)区块链钱包之生成助记词
助记词明文私钥的另一种表现形式,最早是由 BIP39 提案提出,其目的是为了帮助用户记忆复杂的私钥 ( 64 位的哈希值)。助记词一般由12、15、18、21个单词构成,这些单词都取自一个固定词库(2048个),其生成顺序也是按照一定算法而来,所以用户没必要担心随便输入 12 个单词就会生成一个地址。生成过程生成一个128位随机数,再加上对随机数做的校验4位,得到132位的一个数,然后按每11位做切分,这样就有了12个二进制数,然后用每个数去查BIP39定义的单词表,这样就得到12个助记词(当.
2021-05-20 15:59:31
4984
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
210
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
823
原创 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
527
原创 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
128
原创 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
278
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
291
原创 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
1769
原创 Android实时监测网络连接状态及网络是否可用,类似微信的功能。
实现实时监控网络变化,类似于微信的功能,当网络不可用时app能实时感知到,网上找了很多例子并不能实现,或者只实现其中一部分功能,我就参考大家的方法做一个组合。一、网络状态变化监测,此方式只能监测网络连接改变,不能判断是否可用(例如网络连接正常,但是不能访问网络)。在使用时定义一个方法,名字随便,参数必须是一个NetWorkState类型:// 监听网络变化类型 @NetWorkMonitor(monitorFilter = {NetWorkState.WIFI, NetWorkState.GP
2020-10-27 17:10:06
2524
原创 关于Android Q 的文件分区存储权限适配研究
我们发现每安装一个应用,你的手机文件管理中就会创建很多文件夹,而且应用卸载文件夹还在,里面的文件也在,手机用着用着文件系统越来越庞大,最后就是卡顿。在Android 10 新特性中有一个保护外部存储设备中的用户数据,应用可以将自己的文件存储在专用沙盒中,另外就是可以访问公共文件夹,比如Download、DCIM、Music等,这样就不会在/storage/emulated/0/下面创建很多文件夹,你也不能随便访问别的应用文件夹。Android 10虽然加入了此特性,但是Google肯定会考虑给开发者
2020-08-27 11:54:42
571
原创 Android关于设备唯一标识符的获取,适配Android10
在开发中我们需要获取一些设备信息,比如设备宽高、分辨率、IMEI、MAC地址等,有一些设备信息是不会变化的,有一些会随着系统的升级改变,而且还会受权限的影响。在实际开发中也踩过不少坑,经过测试、研究得出一些结论,希望能帮助到大家,同时也作为一个学习记录。
2020-08-26 18:18:09
2434
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
2566
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
180
原创 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
183
原创 RecyclerView的Item复用导致动画不执行问题
场景:在RecyclerView的item中的某个控件在状态0时执行动画,其他状态下不执行。实现方式:判断状态0时给view设置动画,我采用补间动画。问题:在滑动的时候,划到下面再滑倒上面,上面刚才执行的动画不动了,这是由于itemView在离开屏幕的时候,view自身会把它的动画置空。那么我们就可以考虑在view依附在窗口的时候执行动画: if (holder.timerView.getTag() instanceof View.OnAttachStateChangeList
2020-06-20 18:16:09
2599
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
359
原创 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
191
原创 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
301
原创 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
506
原创 调用相机拍照奔溃
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
482
原创 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
466
原创 OkHttp3网络请求(二)之拦截器
OkHttp3网络请求上一篇已经简单介绍了,之前看鸿洋大神的博客学习OkHttp的使用,这里记录一下学习成果。关于拦截器的介绍这里就不介绍了,直接使用:RequestInterceptor.javapublic class RequestInterceptor implements Interceptor { /** * headerLines 参数List */ private List<String> headerLinesList = new A
2020-05-26 17:04:23
711
原创 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
435
原创 使用反射暴力访问私有属性
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
494
原创 第三方登录 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
1865
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
2681
原创 Android画对号动画
把mCircleValueAnimator的duration设置大于零可以先画背景再画对号,修改画笔样式可以把背景化成圈或者纯色背景。package com.lianzhuo.qukanba.widget;import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import an...
2019-10-30 10:58:36
1067
原创 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
1576
原创 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
1228
原创 RecyclerView分页加载
recyclerview分页加载,需要重写OnScrollListener。activity:public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private MainAdapter adapter; private ProgressBar ...
2019-09-26 23:52:33
3886
原创 Android动态设置引导页,支持在任意Activity、Fragment上
这是一个组件,很灵活的运用在任意一个项目中,支持在Activity和Fragment上显示,可以设置显示次数,也可以设置每次启动都显示等,基本可以满足所有的Android开发需求。下载传送门...
2019-07-31 16:14:09
487
原创 TextView的展开收起、自定义ViewGroup使第二个子View紧跟第一个子TextView的内容显示
文本的展开收起常见,第二个View紧跟TextView后面显示也常见;但是,纵观全网好像没有找到比这个更复杂的需求了,此需求把两者糅合在一起了。
2019-07-31 12:14:25
422
原创 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
1883
原创 Android自定义滚动选择器,简单易学
最近做项目有一个需求是选取食材的时候需要设置配量,通过滚轮来选择,如下:项目中原来有一个轮显示数字,一个显示单位的功能,我就在此基础上做了一个封装,基础控件是WheelPicker.java,发现这个思路还是不错的,有很强的可操作性,这里我写了一个demo,效果图如下:这里顺便用到了上一篇文章讲的Dialog的使用。demo地址...
2019-06-24 15:37:50
690
原创 使用Dialog实现PopupWindow效果
效果图:Dialog的使用对Android开发者来说再经常不过了,这里分享一种简单又灵活的使用方式。一、我们最好写一个工具类,用的时候直接调:public class DialogUtils { public static void showDialog(Context context, final OnTextClickListener onTextClickListener)...
2019-06-21 19:00:51
749
原创 关于设置状态栏字体颜色,判断MIUI、flyme系统的一些总结
项目中很多时候所有页面不会都是一个主题色,所以就有了如何设置状态栏字体颜色的需求,经过不断测试,今天就总结一下我的经验,与大家共同学习分享。
2019-05-29 15:59:35
2165
原创 关于MVP的学习总结
关于什么是MVP,以及它的原理我就不拷贝了,这里主要写一下学习体会和总结吧!本例是结合Retrofit请求的,可能代码不全。大概步骤:一,M V P三个基类BaseModel// 就是一个接口,啥也没有。public interface BaseModel {}BaseView// 还是一个接口,啥也没有public interface BaseView {}Bas...
2019-05-28 19:41:44
258
原创 自定义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
618
原创 沉浸式状态栏,包括折叠布局的顶部显示到状态栏
1、一般沉浸式状态栏a、在BaseActivity.java中设置一系列参数。public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(...
2019-04-01 17:52:50
1079
android实时监测网络连接及是否可用
2020-10-27
Android引导图设置,灵活调用,多种模式设置。
2019-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人