- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 android 12 bugly升级问题解决办法
升级使用的Bugly,由于Bugly最新sdk1.5.23未适配android12,当targetSDK设置为31时,点击升级会报错无法升级,反馈一个多月了未见改动只能借助Bugly的后台和接口,自己撸一个简单的升级功能。
2022-06-01 17:36:14
2337
7
原创 Java1.8升级导致邮件发送失败SSLHandshakeException
邮件忽然无法发送了,报SSLHandshakeException。log如下org.apache.catalina.core.StandardWrapperValve.invoke 在路径为的上下文中,Servlet[springMvc]的Servlet.service()引发了具有根本原因的异常Request processing failed; nested exception is javax.mail.MessagingException: Could not convert socket to
2022-05-14 11:37:37
865
原创 解决Android项目多个ndk版本问题
项目引用三方库,它们有些会用到ndk,而且版本不尽相同。编译项目时,androidStudio常常会提示ndk和项目不匹配,需要下载某某版本的ndk。ndk就位于android/sdk/ndk下,常常一个版本的ndk要4G以上的存储空间,电脑有点吃不消。解决方法就是,在项目的local.properties中指定ndk的路径ndk.dir=/Users/mac/Library/Android/sdk/ndk/21.4.7075529建议指定较新的版本,这样只需要一个版本的ndk就可以编译项目了
2022-05-11 10:00:59
1816
原创 H5添加控制台功能
<script src="//cdn.bootcss.com/eruda/1.5.2/eruda.min.js"></script><script>eruda.init();</script>引入这个js即可,方便在app中调试
2022-04-08 10:32:10
715
原创 微信登录OpenId和UnionId区别
做微信登录时会用到OpenId和UnionId。OpenId:是用户和应用共同生成的唯一idUnionId: 是用户和应用所有者共同生成的唯一id举例:如公司C的微信账号同时有A, B两款应用,在做微信登录时。用户通过A获取的OpenId和B获取的OpenId是不同且唯一的。如果希望A应用的注册用户通过微信免注册登录B, 则要使用UnionId。对于公司C账号下的应用,同一个微信用户获取的UnionId是唯一且一致的。...
2022-03-31 10:34:28
12218
原创 android Gradle脚本 task-> export Jar
背景我们有个SDK module,常常有导出Jar包的需要主要有以下需求通过 createFullJarRelease 指令导出jar包,jar位置位于build/intermediates/full_jar/realse/full.jar打出的jar包希望自动copy到工程的release目录下,便于查找另外希望通过时间戳对jar包自动重命名代码module的.gradle文件///afterEvaluate { System.out.println("execute cre
2022-03-22 12:30:35
3069
转载 Flutter 集成umeng_common_sdk 1.2.4打包出现‘SDK初始化失败,请检查是否集成umeng-asms-1.2x.aar库’
Flutter 集成umeng_common_sdk 1.2.4打包出现‘SDK初始化失败,请检查是否集成umeng-asms-1.2x.aar库’转载 https://blog.csdn.net/qq_22007319/article/details/121997354
2022-03-01 16:32:37
2007
原创 幽门螺旋杆菌引发了胃炎,记录一下诊断的过程
背景最近感觉肚子总是胀气,到了饭点不饿,吃点东西就饱了,偶尔会感觉有气泡从肚子里往上冒。本来想忍几天过了,但发现持续有一周了不见好。虽然不疼不痒,但本着不舒服肯定是有问题的原则,去医院挂了个号,做了一个检查。幽门螺旋杆菌感染引起的胃炎,本以为不就是个胃炎吗?但医生说你这问题不小,幽门螺旋杆菌会传染!幽门螺旋杆菌人的胃里是一个强酸环境,而且缺氧,胃壁保护着自身不受强酸腐蚀,是人类的燃料分解场,绝大部分细菌在这里都不能存活。但后来人们发现,在幽门(胃附近)这个位置能生存一种螺旋杆状的细菌(幽门螺旋
2021-11-30 12:38:48
222
原创 今天路上和大众途观L飙车了100米
水灾后的郑州,一切都慢慢恢复了。今天要把周三大雨时的调休补班,出门有点晚了。过了一个坏掉的红绿灯,有点着急,想超过跟我并排的一辆棕色的途观快点走。忽然感觉他也加速,眼角余光感觉这车一直和我并行在加速抢道。不知道为啥,就是不想让,所以也慢慢地踩油门加速,速度飙到70多的时候,我前面有辆自行车距离30米左右,我松油门了。路上一直在想,自己一时不服输,有一瞬间把周围人的生命安全抛却脑后了挺可耻的,万一不小心碰到人了,后悔恐怕都来不及了。另外一个2.5L的凯美瑞和途观L百公里加速半斤八两,两个家用买菜车
2021-07-24 11:46:57
168
原创 C指针初级理解
指针指针,最终还是要指向一个值,不然没啥用!所以看到*p大家应该明白它指向的是一个对象的值。举例:int a = 100;int *p;p = &a;printf("a 变量的地址: %p\n", &var );/* 在指针变量中存储的地址 */printf("p 变量存储的地址: %p\n", p );/* 使用指针访问值 */printf("*p 变量的值: %d\n", *ip );a 变量的地址: 0x7ffeeef168d8p 变量存储的地址: 0x7f
2021-07-24 11:28:25
120
原创 标签打印机ESC光栅位图打印指令
ESC打印位图指令文档说明简单讲解一下这个指令,指令分为指令头和数据部分。指令头0x1D, 0x76, 0x30打印机接收到此指令会进入到光栅位图打印模式m见上面的描述表格,跟打印机分辨率有关,大部分203dpi的打印机横向和纵向分辨率是一致的,所以m通常取 0xL, xH, yL, yH指的是要发送的数据位图的宽和高。因为一个字节最大是255,所以用两个字节分别表示宽和高,宽高分别最大为65535。其中xL代表低16位,xH代表高16位,yL, yH同理。计算方式:(W代表宽度)
2021-07-23 10:48:38
4395
7
原创 日期格式为周+年的坑
日期格式为周+年,这种场景如轮胎上出现的比较多Java处理方式获取年份和周 val calendar = Calendar.getInstance() var year = calendar.get(Calendar.YEAR) val week = calendar.get(Calendar.WEEK_OF_YEAR)解析成日期 calendar.set(Calendar.YEAR,year) calendar.set(Calendar.WEE
2021-07-13 15:08:43
296
原创 数据库表字段与MySQL关键字相同的解决方法
MySQL有自己预留的关键字Reserved Words inMySQL 5.6.23ACCESSIBLE ADD ALLALTER ANALYZE ANDAS ASC ASENSITIVEBEFORE BETWEEN BIGINTBINARY BLOB BOTHBY CALL CASCADECASE CHANGE CHARCHARACTER CHECK COLLATECOLUMN CONDITION CONSTRAINTCONTINUE CONVERT CREATECROSS C
2021-07-05 10:42:58
1634
原创 Flutter bugly native崩溃-ALooper_pollOnce
错误日志#00 pc 000000000006f06c /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)#01 pc 00000000002c0e1c /data/app/com.jancsinn.label-RzHisDk1xqVVsQQ3ZRWQMQ==/lib/arm64/libflutter.so#02 pc 00000000002e1238 /data/app/com.jancsinn.label-RzHisDk1xqVVs
2021-07-03 09:36:46
781
原创 记一次Flutter内存泄漏检测和优化
背景简介现象:一个打印的页面,在循环打印测试过程中,当app运行超过5分钟后,app被系统自动杀死(android+ios)。分析:手机上app被杀死,原因无非2种:随着时间流逝,app的进程优先级降低,逐渐被系统杀死app有内存泄漏,占用内存越来越多,手机GC无法回收内存,导致oom系统强制杀死原因1:涉及的app的应用保活,保活的方式有很多,android中因为我们的app一直在前台运行,可能受到手机息屏或被切到后台的影响,所以解决的思路是打印时启动一个service和notificat
2021-06-29 12:21:38
1955
原创 RLE算法java实现(非递归)
RLE算法RLE(Run LengthEncoding行程编码)算法是一个简单高效的无损数据压缩算法,其基本思路是把数据看成一个线性序列,而这些数据序列组织方式分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于连续的重复数据快采用的压缩策略是用一个字节(我们称之为数据重数属性)表示数据块重复的次数,然后在这个数据重数属性字节后面存储对应的数据字节本身。示例简单来说,RLE算法就是用一个字节来记录重复/非重复数量字节数量,N,D1,D2…DN。一个字节是8位,高位1表示非重复,0表
2021-06-21 11:55:46
477
原创 标签打印机TSPL打印指令
ESC TSPL指令tspl是一套通用的标签打印指令,许多主流标签打印机都支持此指令。但是网上资料较少,这里主要分享一下android和ios的打印基本算法。指令文档指令文档网上较少,这里引用一个链接吧 TSC条码打印机指令TSPL手册,各个厂商可能基于此指令有少量diy,具体可以查看自己打印机对应厂商的文档。打印请详细阅读指令手册,具体打印步骤,以打印图片为例:SIZE 设置标签大小GAP 设置标签缝大小BITMAP 绘制图像PRINT 打印如果需要反向打印,需要在
2021-06-19 16:38:06
13736
2
原创 Flutter获取Widget截图(前台和后台方式)
众所周知Flutter所有的UI都是由Widget嵌套和组合而成的,有时我们需要获取UI的截图,比如要做图片分享时,怎么实现呢 ?前台截图场景一:widget已经在页面展示出来了,需要获取widget的截图并生成图片保存起来。先上代码:///从组件获取位图///@param: context:组件上下文///@param: pixelRatio:根据分辨率展示倍图///@return: Unit8ListFuture<Uint8List?> getBitmapFromConte
2021-06-02 19:30:48
2961
8
原创 Flutter图片获取正确的图片宽高比(照片方向)
使用image库,代码如下 var _imageBytes = await imageFile.readAsBytes(); var image = imgLib.decodeImage(_imageBytes!); if (image != null) { ///图片是横向的,宽高比对调 if (image.exif.hasOrientation && ((image.exif.orientation == 5) ||
2021-06-01 11:37:56
3254
2
原创 Schema打开三方通讯APP
总结了用到的三方通讯app schema微信 “weixin://”钉钉 “dingtalk://”qq “mqq://”Facebook “fb://”WhatsApp “whatsapp://”Line “line://”Twitter “twitter:// “打开方式 if (await canLaunch(schema)) { return await launch(schema); } else { print("请安装
2021-05-24 19:09:51
584
原创 Objctive-C初看1
从java转过来,看oc,感觉很多地方莫名其妙。记录下自己自学认识的过程,虽然是盲人摸象,但是一步步由完全不懂,到入门应该也是不错的经理。类的创建:首先,文件分为.m文件和.h文件.m文件:定义一些类似于private的东西.h文件:对外公开的,允许进行访问权限修改类创建:1)声明类,import调用的基类2)用@interface@end来
2015-09-28 09:54:15
409
原创 仿Android L 长按Home键显示最近使用应用信息及清理
Android L 上,长按Home键可以显示最近使用的应用,以便用户可以快速回到之前使用的应用。现在项目需要用程序把栈信息清空=_=下面是实现过程,分析源码的实现过程: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { final boolean handled = sup
2015-08-06 18:52:01
1750
3
原创 String StringBuffer StringBuilder比较
String是基本数据类型,但是String有封装类String a1="aa";(来自栈的常量池)String a2=new String("aa");(封装类,来自堆的new出的对象)a1和a2是equal的(值相同),但是不是==的(二者地址不相同)。常用的String a3=a1+a2+...;每次+操作都会产生新的临时string,如果拼接操作太多,会产生很多
2015-08-03 18:09:30
317
翻译 Fragments
Fragment(碎片)一个碎片在一个活动中代表一个行为或用户界面的一部分。 你可以在一个单一的活动中组合使用多个碎片以建立一个多窗格的UI,并且可以在多个活动中重用一个碎片。你可以认为是一个拥有独立生命周期、能够独立接受输入事件、并且可以在活动运行时添加或移除的碎片作为一个活动的模块化部分(有点像一个你可以在不同活动中重用的子活动)。一个碎片必须总是嵌入到一个活动(activ
2015-07-29 17:04:01
281
翻译 Service
不贴英文了,直接翻译主要是加深对Service的理解Service是一个可以在后台处理耗时操作且没有用户界面的一个应用组件。一个Service可以被其它的组件启动,并一直在后台运行即使用户转向去使用别的app了。此外,一个组件可以通过绑定(bind)的方式和Service交互,甚至执行跨进程通信(IPC)。比如,一个服务可以在后台完成很多操作,诸如 操作网络事务,播放音乐,操作文件I/
2015-07-27 18:25:59
391
原创 仿应用汇应用搜索标签效果——flowTags基于github开源项目flowlayout
最近项目需要做个热门搜索标签功能。想法主要有2个,一是做个listview或者gridview,但是有个很明显的缺陷就是需要这些关键字长度相似,不然就会出现布局问题,很难看且很死板。二是自定义一种listview,子item自适应父类的大小排列。就像在应用汇里的应用标签那样。幸运的是在github找到了这个相关开源控件flowlayout。 https://github.c
2015-07-26 18:49:16
995
原创 默默重新开始,第一页也是新的一页
趁着年轻,默默重新开始。发现自己的生活、工作圈子太小了,周围各方面比我厉害得多的人太多了,既让我羞愧,也让我兴奋。今天一个叫陈敬林的人对我说,你未来还会遇到很多这样的打击,关键是心态要好,过段时间还可以再来,由衷感谢~我也是这么想的,能够听到这样的鼓励是最好不过的。一些人面对生活工作 麻木不反抗,最后使自己失去了知觉和反抗意识,算是彻底被生活“强奸”了吧。最终获得挣脱命运枷锁的人永
2015-07-24 21:27:32
267
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人