自定义博客皮肤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)
  • 收藏
  • 关注

原创 Android 消息分发机制解读

并开始无限循环,也就是App的心脏,一直跳动,负责协调分配来自各方的事件,让App不断响应用户操作,如果主线程出现了异常,也就是心脏跳动异常停止,那么App的生命随之终止,也就是常见的‘进程已停止运行’。那么,你有没有想过,既然他在一直无限循环,为什么没有卡死呢?为什么能看到“应用无响应”?怎么保证界面刷新不受其他事件影响,怎么做到有条不理的处理每一条消息等等这些问题呢,作为一名Android开发者,我想我们有必要对其结构进行简单了解。至此,相信你对消息分发机制也有大概的理解。

2023-12-06 23:31:32 329 1

原创 Android Sutdio依赖Snapshot版本,无法同步最新的包(已完美解决)

局域网中搭建了Nexus托管本地打包的aar,正常情况下,把修改完成的库推送到仓库后,其他项目引用Snapshot版本的依赖,同步后会马上下载最新的包,但是当第二次+推送后,就没有重新下载最新的包,导致代码一直飘红,但是build的时候,可以看到输出的日志中有。,这样删除会导致所有本地的依赖缓存文件被删掉,打开项目需重新下载所有依赖,首次编译时间会变长,或许可以找到那个有问题的包,单独把他的缓存删掉,没试过。,就是刚上传的最新的包,结果编译成功。

2023-10-08 10:27:02 361

原创 简单使用AndroidStudio 官方Profiler工具进行内存泄漏检查

Profiler工具为了我们能方便查看内存泄漏的地方,专门提供了一个View app heap 分类来报告哪些页面泄漏,同时,我们还可以在里面查看非页面类有没有正常被释放,比如单例,当我们退出某个功能后,手动把单例置为空(”销毁“),我们只需在强制GC后抓取一段内存数据查看该对象是否仍在活跃即可。

2023-04-04 10:42:43 3840

原创 Android 自定义View 处理多点触控,实现双指支持同时缩放平移

Android 多点触控,实现类似地图效果,同时支持缩放平移

2022-09-28 19:20:14 3264 2

原创 自定义一个倒计时控件

通过绘图实现一个带进度条的倒计时控件

2022-07-25 14:14:36 306

原创 Adnroid Studio kotlin 报错AssertionError: Could not delete caches xxx kotlin\compileKotlin文件名太长

起因Android Studio使用kotlin 编写代码 编译时频繁遇到java.lang.AssertionError: Could not delete caches dir xxx\build\kotlin\compileKotlin ,文件名太长等问题,必须重启软件 或在任务管理器中结束占用该目录的java进程关掉才能正常编译,但是没过多久又会报这个错误;原因Android Studio 的Kotlin插件和项目中使用到的kotlin版本不一致导致解决办法我们可以从两方面解决:改变项

2022-02-16 10:24:20 4074 4

原创 使用原生绘图方式 实现平移缩放(二)

使用使用原生绘图方式 实现平移缩放上一章实现了绘图坐标和地理坐标的互相转换,接下来开始实现画面平移、缩放;平移场景1:把指定地理坐标点G移动到屏幕中心实现思路:关系图:核心思路就是计算点G距离屏幕中心的距离,因为G可能不在屏幕显示范围,所以我们应该计算实地距离,而不是屏幕距离;计算屏幕中心的地理坐标点CenterG:拿到绘图坐标系中的中心坐标(窗口宽高的一般+左上角坐标即可),用上一章提到的办法做转换得到地理坐标用CenterG减去G点得到X方向和Y方向的实地距离Lx,Ly;把我们的绘

2021-11-20 20:03:50 1886

原创 使用的原生绘图方式 实现绘制地理坐标(一)

如何使用GDI绘制CG2000坐标系(一)前言对于GDI绘图,相信都不陌生,我们可以很轻易在WinForm中进行绘制点、线、面、字符串等,我们都知道,屏幕坐标系中,原点在左上角,X方向向右为正,垂直方向向下为正,2000坐标系(这里包括接下来我们都用数学坐标系或地理坐标系为名)原点在左下角,向上为正,Y轴正好和屏幕坐标系相反,因此需要做一个屏幕坐标系到地理坐标系之间的转换,把2000的坐标转换到屏幕坐标系后,再使用GDI把这点画出来就行了。实现效果如下在屏幕上绘制100个坐标点 并把画面移动到中心,

2021-11-14 14:44:08 1981

原创 Android 接收系统分享的文件

Android 接收系统分享的文件测试使用环境:小米11 Android 11代码如下:XML清单 配置<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.int

2021-10-18 11:11:40 2068 2

原创 Android Studio无线调试软件

Android 开启无线调试环境要求PC端需要配置Adb环境使用python脚本需要python3.0+环境原生命令行方法调用把设备通过数据线连接到PC中执行命令adb devices -l 有设备即可打开Android设备调试端口5555 执行命令adb tcpip 5555打开成功后,此时可拔掉数据线执行无线连接命令adb connect 172.16.10.11连接成功即可拔掉数据线使用脚本,一键连接既然是执行固定操作,那么我们就可以通过脚本控制,获取设备信息打开

2021-06-11 17:39:40 363 3

原创 Android 快速查找当前页面Activity名称(三种办法)

# 主要分两种方式进行查找## 第一种:通过Android studio 自带工具查找在顶部菜单执行如下操作:tools-->layout inspector然后选中对应de

2021-05-28 09:51:07 7743 1

原创 Vue webpack 自定义打包环境和环境变量

文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言使用Vue-cli 创建webpack项目时,模板默认提供dev和build脚本,dev为直接在本地启动服务器,build为打包生产环境,但是有些时候我们如果想打包一个自定义的环境(预演环境)的话,需要我们自定义一个环境,借鉴网上杂乱的教程,这里整理出一个完整可用方案。一、系统开发环境本文将使用如下环境:Vue:2.9.6VsCode:1.54.3项目...

2021-03-17 00:14:35 1494

原创 Idea 使用spring Initializr 搭建springboot开发环境 导出war包 部署成功并启动 访问404

首先,使用Spring Initializr创建的springboot项目,基本开发环境已经自动为你搭建好,在Idea中直接运行,正常运行并访问;然后使用Maven工具打包:把得到的war包拷贝到Tomcat 的WebApps下,Tomcat输出部署完成,但是没输出springboot的日志,打开Tomcat自带的应用列表管理找到我们刚刚的war名称,发现已启动,点击重新加载结果还是一样部署成功但是访问还是404-请求资源不可用,很明显我们的war虽然部署上去了但是没有启动,也没有任何错误信

2021-03-07 10:07:37 307 1

原创 Android 分享图片、gif 到微信等第三方应用

分享图片到第三方应用(微信)时,正常调用代码: Uri uri=getFileUri(context,"文件全路径不包含文件名","文件名包含扩展名"); Intent intent = new Intent(); ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI"); intent.setComponent(

2021-02-23 11:51:56 985 4

原创 vue-cli 代理配置遇到的问题

代理配置不难,就是有些,这里做下记录避免重复踩坑;环境项目使用element-ui的基础模板:vue-admin-template,项目在本地localhost:8080运行,服务器webapp在https://xxx.xxx.ciom/app下;代理配置1. 找到项目根目录下的vue.config.js中如下代码 如上图,马赛克位置1 中把服务器webapp地址放进去即可完成该文件的配置(打开日志可看到完整过程logLevel: 'debug')2. 找到开发环境的配...

2021-02-03 09:26:49 545

原创 Uni app 分包配置

参考官方文档:1、先在清单中启用分包,参考官方文档:https://uniapp.dcloud.io/collocation/manifest?id=app-vue-optimization2、在pages.json文件中做如下配置,参考官方文档https://uniapp.dcloud.io/collocation/pages?id=subpackages看完这两个文档应该就懂了 ,网上搜的好多垃圾文章,说话说一半,还含糊不清,所以坐下笔记,如果你刷到这个笔记 那么恭喜你 找对地.

2020-09-21 18:24:05 1556

原创 android studio 生成自定义安装包名称

在app的build.gradle文件下编辑如下: buildTypes { android.applicationVariants.all { variant -> def _debug = "" if (variant.buildType.name != 'release') { _debug = "_debug" } variant.outputs.al

2020-09-15 20:08:05 713

原创 CAD 启动无法加载配置文件,上次任务中保存的某些配置信 cass主框架程序没有加载

Cad 启动报错无法加载配置文件,上次任务中保存的某些配置信xxxxx解决办法:参考:https://knowledge.autodesk.com/zh-hans/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/CHS/How-to-reset-AutoCAD-to-defaults.html退出 AutoCAD。 要备份当前设置,请运行名为输出 AutoCAD 20xx 设置的应用,该应用位于可从 Win.

2020-08-12 15:03:02 11333

原创 MPChart 柱状图 基础用法

先看一下效果首先我们来初始化一下barchart的配置: private void initBarChar(BarChart barChart) { XAxis xAxis = barChart.getXAxis(); //关闭右边纵轴 barChart.getAxisRight().setEnabled(false); //关闭图例 barChart.getLegend().setEnabled(fal.

2020-07-30 09:06:07 920

原创 微信公众号开发:VSCode+Vue+vux 微信授权解决方案

业务需求:使用Vue+vux开发微信公众号页面需要微信授权登录,再通过后台换取openId,公众号页面中有些页面不需要登录,有些页面不需要登录,在用户从普通页面访问需登录页面时,自动跳转至登录页面,授权后继续登录前的操作;解决方案*前提:微信开发环境、后端配置均已完成解决思路在main.js中添加路由守卫,路由跳转时检测是否已登录,已登录则通过,未登录则拉起微信登录并记录当前要访问的页面和参数,存放到localStorage中; 把根路径映射到微信登录成功后要跳转的页面,接收code;

2020-07-07 10:33:23 2129

原创 mpvue 未找到入口 sitemap.json 文件

1. 如果项目不大 可以根据官方文档重新建一下项目就行了:地址:http://mpvue.com/mpvue/quickstart.html2. 来自官方的issues:node build/build.js wx && cp -f dist/sitemap.json dist/wx/sitemap.json

2020-07-03 11:51:53 532

原创 IDEA 远程部署Win10系统中的Tomcat web项目 并调试

本文将讲述IDEA中如何把本地得Web项目发布到远程Tomcat中并调试,网上文章太杂,这里介绍一直简单得测试能用的方法;***首先确保Tomcat能正常使用;第一步我们先开启Tomcat的调试模式,↓在Tomcat的bin目录下找到catalina.bat文件,在文件首行加入如下配置:set JMX_REMOTE_CONFIG=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -.

2020-06-09 16:35:26 593

原创 C# 使用 Filestream 快速修改大文件中某一行指定位置的数据

前言C# 中读写文件常规流程FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);//读StreamReader sr=new StreamReader(fs);string line=sr.readLine();//写StreamWriter s = new StreamWriter(fs);s.WriteLine("xxx");至于修改内容 网上大多数是先

2020-06-06 19:07:14 6624

原创 Window 配置Tomcat 调试模式 支持远程连接调试

1、找到Tomcat bin目录下的catalina.bat文件,在首行加入如下代码:set JAVA_OPTS=-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=fa

2020-06-02 09:18:29 662

原创 Android Switch控件 用代码打开开关但是不需要触发OnChangedListener事件

*这里做个笔记(小白问题,大神绕道)switchTest.setSelected(true);这样就好了。

2020-04-14 11:50:13 1071 1

原创 Android(Java)使用Des加密后结果多了一个\n

使用Des加密的时候想必有人遇到过这种问题,每个加密结果都会带有一个换行符号,其实这是Base64对byte数组编码成字符串时flag值得问题解决办法:flag使用Base64.NO_WRAP Base64.encodeToString(bytes, Base64.NO_WRAP);下面接Base64关键源码(废话开始):首先是编码函数???? /** * Ba...

2020-04-14 11:46:51 651

原创 Android 项目 引用了第三方aar 同步成功 但是编译时报错 跟这个aar 相关的类全部飘红

遇到个奇怪的问题 记录一下:有个项目能正常编译运行 ,几天没有打开过,今天一打开那个aar相关的类找不到了 aar还在,然后我做了一下无用工作:把项目下的.idea、.gradle、还有各个模块的build目录全部删除 再编译 还是报错 把代码commit一下,结果发现没有改动过任何文件,然后我又把每个模块删了 再重新往svn拉代码,还是报错 创建另外一个目录把代码checkout进去...

2020-04-10 14:30:18 671 2

原创 Android 引入第三方so后启动报错 /lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "xxx.so"

缘由:由于项目需要,引用了不同平台的so文件,分别a.so, b.so ,其中a.so 只有armabi-v7a版本,b.so通过gradle配置自动下载,编译运行后程序启动,运行到需要使用a.so 的地方直接闪退;报错:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file ...

2020-03-12 18:34:56 9921

原创 Andoird 中 fragment 嵌套fragment 后 不行不加载

mPager.setAdapter(new CustomFragmentPagerAdapter(getChildFragmentManager(), fragments));看看自己上面的getChildFragmentManager是不是用错了 用了getFragmentManager;

2020-02-26 13:46:14 150

原创 Gradle sync failed: EventQueue.isDispatchThread()=false Toolkit.getEventQueue()=com.intellij.ide.Ide

新建module后,上面显示 Gradle sync 同步失败,build窗口一直卡在同步中,卸载重装 更换sdk,删除.gradle和 android配置文件夹都没有用

2019-12-10 09:35:09 2244

原创 SSM笔记:mybatis/mybatis-plus 一对多通过xml配置实现

做个笔记 免得下次又忘了

2019-12-04 09:32:24 2010

原创 Android Exception occurred while dumping:

遇到好几次这个问题了,这里做个笔记,防止下次出现同样的问题,浪费时间寻找解决办法;出现问题的原因:拷贝了一份项目,更换了项目的文件夹名字,重新编译运行,编译通过,安装时报错Exception occurred while dumping:解决办法:由于复制的项目,原来的缓存文件还在,同时还出现 部分配置文件出现重复的现象,把.dea、.gradle文件夹删掉,然后在Android stu...

2019-10-29 17:08:05 1589

原创 Gson 和fastjson之间日期转换

fastjson中指定日期格式:String json= JSONObject.toJSONStringWithDateFormat(Obj,"yyyy-MM-dd HH:mm:ss"));Gson中指定日期格式: GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setDateFormat("yyyy-MM-d...

2019-10-18 14:41:57 526

原创 Android Gson 解析Json数据过程和如何自定义解析规则(下)

上两篇文章主要讲述寻找问题根源到解决思路,解决办法比较复杂,这里提供一种最简单的解决办法,不需要改动太多的东西:比如一般后台返回的数据格式如下:正常数据{"code":200,"data":{"id":"adsd","name":"Weipru"},"msg":"success","timeStamp":"20191015102953"}不存在data的数据{"code":...

2019-10-15 17:04:51 550

原创 Android Gson 解析Json数据过程和如何自定义解析规则(中)

根据上篇文章,我们要把解析入口走我们自己的流程,我们需要一个自己的 GsonConverFactory 但是又不想写其他代码,只想改关键地方,我们肯定会想到直接继承GsonConverFactory 但是很遗憾,这个类带final 不能被继承,所以,我们可以直接把这个类复制一份处理,一步一步的自定义我们自己的适配器;我们的目标就是把Object类型和Collect类型解析自定义通过源码发现,...

2019-10-15 16:11:47 1056

原创 Android Gson 解析Json数据过程和如何自定义解析规则(上)

友情提示:当前文章和(中)均为过程实际没有完美解决问题,真正解决问题的是直接看结果背景Android开发与后台API对接时,使用Gson库做数据转换,但是实际测试发现不够灵活,当Gson处理正常数据时,整个流程是正确的,比如获取用户信息返回正确数据{"code":200,"data":{"id":"adsd","name":"Weipru"},"msg":"success","ti...

2019-10-15 11:28:06 1116

原创 npm 打包 vue 项目

进入项目根目录打开cmd运行命令npm run build打包项目注意:放到Tomcat webapps目录下的某个目录中时 需要改vue项目打包配置文件 config\index.js//build 节点下修改build: { // Template for index.html index: path.resolve(__dirname, '....

2019-10-08 17:28:50 1370

原创 Android 输入法优先弹出数字键盘或优先弹出字母键盘,但是不限制输入方式

遇到一个奇葩需求,要记录输入法上一次的输入状态,例如上一次用切换了数字输入,关闭后再打开输入框时要优先弹出数字键盘,但是不能限制只能输入数字; 经过一番测试,找到解决办法:首先是获取当前输入法的输入方式(办法比较死,没找到更好的办法)://etInputType为EditTextetInputType.addTextChangedListener(new TextWat...

2019-09-29 10:21:05 2154 1

原创 Android adb push失败后 手机出现空文件,无法删除,提示文件不存在、删除失败

使用ADB push 文件到手机里面时,由于传输过程中断或者文件名出现中文等种种原因,导致传输失败,但是手机中的临时文件仍然残留在sdcard中,无法删除;解决过程:(不想看的直接可以跳过)使用adb删除时,如果是中文名,通常文件名还带有其他不可识别的字符 ,无法输入到adb shell中,这个时候需这样使用adb命令删除:adb shell rm 文件名会发现无法删除、或者无法...

2019-07-05 15:39:50 3346 3

原创 win10 安装.netFramework3.5 失败,报错0x80246008

1、找到win10的系统镜像文件,装载,目录结构如下2、依次打开sources-->sxs,找到里面类似带netfx3字样的压缩包,如下随便复制到一个地方,笔者这里复制到c盘根目录!解压!3、以管理员启动命令行,快捷键win+x ,输入命令(注意后面的那个路径):dism.exe /online /add-package /packagepath:C:\micr...

2019-06-18 15:47:40 6254

空空如也

空空如也

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

TA关注的人

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