- 博客(45)
- 资源 (3)
- 收藏
- 关注
原创 debug调试高级功能 断点、布局 及Android Studio常用快捷按键使用详情
debug调试高级功能 断点、布局 及Android Studio常用快捷按键使用详情
2024-06-16 14:56:18
1106
原创 Android 使用kotlin Retrofit2 + Dagger2完成网络请求跟依赖注入组合使用
Android 使用kotlin Retrofit2 + Dagger2完成网络请求跟依赖注入组合使用
2024-06-01 19:41:43
1228
原创 Kotlin使用Dagger2但无法生成对应类 Unresolved reference: DaggerMyComponent
Kotlin使用Dagger2但无法生成对应类 Unresolved reference: DaggerMyComponent
2024-06-01 16:48:36
186
原创 报错:Cannot find implementation for com.example.biluo.database.UserDatabase. UserDatabase_Impl does no
报错:Cannot find implementation for com.example.biluo.database.UserDatabase. UserDatabase_Impl does no
2024-05-25 01:43:38
251
原创 Android 集成Bugly完成线上的异常Exception收集及处理
Android 集成Bugly完成线上的异常Exception收集及处理
2024-05-14 22:19:41
459
原创 Synchornized、Volatile及Semaphore之间的区别
执行业务逻辑时,线程会把主内存中的变量copy到线程的工作内存(寄存器跟高速缓存),后续发生的读写操作都是对工作内存中的副本变量进行的。如果一个线程A调用一个实例对象的非static synchornized方法,而线程B需要调用这个实例对象所属类的静态synchornized方法,是允许的,不会发生互斥现象,因为访问静态synchornized方法占用的是当前类的class对象,而访问非静态synchornized方法占用的锁是当前实例对象锁,两者不一致。- 当生产者遇到仓库满时,生产者线程被挂起。
2024-04-26 18:53:38
925
原创 C、C++指针及变量简要概述
/&表示number_int变量所对应的内存地址。*intP 表示的是取出 (int *)类型 地址所对应的值。内存地址 == 指针。指针 == 内存地址。
2023-12-17 22:04:43
91
原创 Java如何调用c++,Android 通过JNI调用C++
在Java中,如果想要调用底层.c或者c++,需要通过JNI是实现双端的互通,这篇就来说说在java中如何通过JNI来调用c++模块。五、创建CMakeLists.txt 并添加 .so动态库。一、配置build.gradle 中sdk 相关的设置。三、JNI中.h 预定义 c++方法。六、在java中加载动态库。二、定义native方法。四、编写.cpp文件。
2023-12-04 17:50:02
293
原创 聊一聊CMakeLists.txt 中的一些常见命令
cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。
2023-12-04 01:29:01
118
原创 Java 通过 JNI调用 c++ 以及 c++ 如何调用Java 中的方法跟静态方法
JNI调用Java方法现有OCRNative这个类,跟showToast这个方法,thiz 是当前类的实例,而env 则是 JNI 的虚拟环境,其他参数。
2023-12-02 00:13:33
695
原创 HashMap哈希表底层采用什么算法计算桶下标的?HashMap如何确定桶下标的?
HashMap哈希表底层采用什么算法计算桶下标的?HashMap如何确定桶下标的?
2023-11-26 12:59:37
173
原创 Andoird 中使用MVVM加databinding、viewbinding实现双向绑定
使用ViewMode跟databinding向xml中插入数据来实现MVVM并与MVP相比较
2023-11-17 15:57:12
529
1
原创 Unhandled Exception: LateInitializationError: Field ‘_userFirst@34292643‘ has not been initialized.
late关键字会延迟初始化变量,系统不会给其初始化变量,如果自己在对其进行判空前进行赋值地话,就会报LateInitializationError
2023-10-22 00:02:52
434
1
原创 Android非静态内部类持有外部类的引用导致OOM内存泄漏
非静态内部类持有外部类的引用时有可能导致内存泄漏解决方法:使用静态内部类替换private static class MyHandler extends Handler { WeakReference<Activity > mActivityReference; MyHandler(Activity activity) { mActivityReference= new WeakReference<Activity>(activity); }
2022-01-06 20:33:09
1298
原创 android 在build.gradle中写脚本通过json文件控制版本号和版本名
前言:在近期的项目当前,每次升级都需要改两个地方,一个是上传到服务器的json文件,一个是build.gradle汇总的versionCode和versionName,这样每次都很繁琐,较容易出现build.gradle中VersionCode未随升级版本改变而导致用户重复下载问题。解决方法:在build.gradle最外层添加如下方法:/** 获取版本信息 @return */String[] getVersionName(){ String jsonStr = "" tr
2021-12-25 20:09:43
2060
原创 对接微信支付之生成签名方式错误导致支付验证签名失败
之前对接过微信支付的App支付,许久未用后测试人员发现微信支付不管用了,密钥,商户号,AppId都验证过,而且后台预支付单号也拿到了,摸索了一天,最后发现原来微信App支付官方文档签名生成方式已经改了!!!
2021-12-23 21:23:09
1235
原创 JavaWeb maven okhttp3包
最近在使用微信支付签名生成中使用到okhttp3<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.9.3</version> </dependency>
2021-12-22 17:00:42
7961
原创 Android 微信支付接入—— 客户端
最近接到项目需要,需要接入微信支付。微信支付的麻烦早有耳闻,所以之前也一直不敢接这样的项目,但是没办法为了生计,还是要学习。本篇教程主要讲述如何接入微信支付客户端
2021-12-22 09:13:04
1790
原创 Gson.toJson字符串转义避免将特殊字符转成Unicode字符
解决方法:Gson gson = new GsonBuilder().disableHtmlEscaping().create().toJson(obj);
2021-12-02 13:40:11
1244
原创 AIDL连接池的创建和使用
AIDL连接池创建AIDL接口ISecurityCenter.aidlinterface ISecurityCenter { String encrypt(String content); String decrypt(String password);}ICompute.aidlinterface ICompute { int add(int a, int b);}IBinderPool.aidlinterface IBinderPool { IBin
2021-12-01 22:39:57
278
原创 打开文件管理器并进行文件夹的复制、移动、删除、创建
打开文件管理器并进行文件夹的复制、移动、删除、创建调文件文件管理器并获取可操作文件的DocumentFileIntent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);//设置读写权限intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);startActivityForResult(intent,
2021-11-16 23:33:24
1287
原创 自定义Dialog不显示视图
场景:在项目中,使用AlertDialog创建了一个自定义的Dialog,但是运行之后却只显示一小长方块的空白视图,解决方法如下//传入一个Activity类型的上下文contextfinal AlertDialog dialog = new AlertDialog.Builder(context).create();View itemRenameDialogView = View.inflate(context, R.layout.scanpay_dialog_screen_time_out_c
2021-11-10 13:08:40
561
原创 使用悬浮窗实现护目镜全屏显示
创建悬浮窗服务这不细说了,这里直接上关键代码:WindowManager windowManager = ((WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE));WindowManager.LayoutParams params = new WindowManager.LayoutParams();params.x = 0;params.y = 0;Display display = windowMana
2021-11-08 21:26:27
184
原创 Android onResume跳转界面出错
情景:在A界面onResume中跳转到B界面,B界面中启动截图服务,之后导致截图服务出现奔溃,提示截图必须在前台服务中进行解决办法:延迟启动界面跳转代码:new Handler().postDelayed(() -> { Intent intent2 = new Intent(ShowResultActivity.this, ScreenCaptureActivity.class); intent2.setFlags(Inten
2021-10-24 19:58:54
4985
原创 android 弹出选择输入法选择界面
InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);inputMethodManager.showInputMethodPicker();
2021-10-24 17:10:08
2780
原创 Android、Python过滤非中文特殊字符
Android:tring pattern = "[^\\w\\u4e00-\\u9fff]";Pattern r = Pattern.compile(pattern);Matcher m = r.matcher("江苏 » 无锡市:婚礼司仪roger");String newStr = m.replaceAll("");Python:import regex as renew_str = re.sub('[^\w\u4e00-\u9fff]+', '','江苏 » 无锡市:婚礼司仪rog
2021-10-15 22:10:00
450
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人