原创
文章平均质量分 80
工程师丶佛爷
目前主要这几个方向Android、ios、java后端、flutter跨平台、鸿蒙
展开
-
Android多线程开启如何选择
线程开启方式取决于你的应用程序需求和场景。在Android开发中,有几种常用的线程开启方式优点:简单快速,适合较简单的后台任务和UI更新操作。缺点:在Android API 30中已被标记为过时,不再推荐使用。不适合长时间运行的任务和多个并发任务。优点:适用于需要长时间运行的后台任务,不需要单独的Service。内部实现了Looper和Handler,方便消息处理。缺点:较为底层,需要手动管理消息和线程间通信,复杂任务可能需要更多的代码。原创 2023-07-21 09:42:14 · 341 阅读 · 0 评论 -
JAVA设计模式之工厂模式讲解
Java程序设计模式是为了解决特定问题而开发的一系列重复使用的代码设计方法。以下是几种常见的Java程序设计模式及其使用:工厂模式:将对象的创建与使用分离,使得代码更具有可读性和可维护性。单例模式:保证一个类仅有一个实例,并提供一个全局访问点,避免重复创建对象,提高程序性能。观察者模式:定义对象之间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动更新。建造者模式:将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。原创 2023-02-24 14:43:53 · 760 阅读 · 0 评论 -
使用Java8优化模板方法模式
以上,我们介绍了什么是模板方法模式,以及如何使用Comsumer和Supplier改造模板方法模式。这样的做法是我们日常开发中经常会用到的,其实,我觉得本文中的例子并不是完完全全能表达出来我想表达的意思,但是我们的真实业务中的逻辑讲起来又比较复杂。所以,这就需要大家能够多多理解并且实践一下。如果你代码中用到过模板方法模式,那一定是可以通过本文中的方法进行改造的。如果你还没用过模板方法模式,那说明你的应用中一定有很多重复代码,那就赶紧用起来。原创 2023-01-30 11:28:26 · 560 阅读 · 0 评论 -
记录SpringBoot打包jar到云服务器报no main manifest attribute
前一段时间写了几个登录注册接口,本地运行没有问题,发布到腾讯云服务器直接报错,错误信息如下no main manifest attribute, in /home/fyj/foodie-dev.jar,然后百度了一下,发现了各种解决方法,千奇百怪的,最后还是自己通过查看日志解决。原创 2023-01-03 16:16:33 · 689 阅读 · 0 评论 -
Android几种定时任务实现方式汇总
Android开发当中,定时器的场景太多太多,比如过多久轮询一次业务需求,或者轮询网络以及多少秒的倒计时,记录一下给需要的人一些帮助Android中的定时任务一般有两种实现方式,一种是使用 Java API 里提供的 Timer 类,一种是使用 Android 的 Alarm 机制。这两种方式在多数情况下都能实现类似的效果,但 Timer 有一个明显的短板,它并不适用于那些需要长期在后台运行的定时任务。.........原创 2022-08-30 16:20:44 · 13640 阅读 · 4 评论 -
用AOP实现异步上传
主要还是要提升团队整体开发效率原创 2022-07-21 13:50:42 · 316 阅读 · 0 评论 -
推荐几款Android Studio插件推荐
前言 平常开发中,有很多操作其实都可以借助插件来完成,这样的话就可以节约很多开发时间,话不多说请直接看下面插件。插件列表Java 代码约束插件 插件名称:Alibaba Java Coding Guidelines 插件简介:这是阿里巴巴开发的一款代码约束插件,当我们的代码不符合规范时,会有相应的警告提示,能够帮助我们在开发中提升代码质量。 插件文档:安装成功后重启,插件在发现预览 Java 类中发现不规范的地方会有黄色的警告。 正在上传…重新上传取消...原创 2021-11-03 17:47:25 · 751 阅读 · 0 评论 -
解决Error while executing process /..../Android/sdk/cmake/3.6.4111459/bin/cmake....
错误信息Build command failed.Error while executing process /Users/chenshili/Library/Android/sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /Users/chenshili/Downloads/live-transcribe-speech-engine-master/app/.externalNativeBuild/cmake/arm7Relea..原创 2021-02-18 14:06:35 · 5824 阅读 · 8 评论 -
聊聊单例模式的应用
在开发项目的时候,可能大家有这样的一种场景,需要全局访问一个对像并且保证唯一性从其定义我们可以看出来单例模式存在三个要点:1、实例唯一性2、自行创建3、全局访问如何设计一个优秀的单例模式其实也是围绕着这三点来的。说了这么多了,还不知道单例模式到底啥样呢?接下来我们一起来着手设计这个“国王”的单例类。原创 2021-04-25 11:32:34 · 172 阅读 · 0 评论 -
懒人必备Android串口通信库
目录前言项目依赖kotlin使用介绍JAVA使用介绍前言最近公司项目用到串口,需要和硬件或者pc中间经过串口通信,其实也挺简单的,已经封装成sdk库,欢迎大家使用,有问题欢迎大家提出。项目依赖allprojects { repositories { ... maven { url 'https://jitpack.io' } }}dependencies { implementation 'com.github.cl-6...原创 2021-02-07 09:02:03 · 5493 阅读 · 41 评论 -
架构师成长之路设计模式-原型模式
前言:平常工作中,你应该遇到过这种代码:public void setParam(ExamPaperVo vo){ExamPaper examPaper=new ExamPaper();//试卷主键examPaper.setExaminationPaperId(vo.getExaminationPaperId());//剩余时间curForm.setLeavTime(examPaper.getLeavTime());//单位主键curForm.setOrganizationId...原创 2021-02-04 18:35:54 · 193 阅读 · 0 评论 -
修改RK3399系统一些常用命令
目录前言修改横线屏方法隐藏导航栏隐藏状态栏前言最近有一个项目和硬件打交道比较多,比如要修改安卓板子的分辨率以及横竖屏等操作,在这里记录一下。修改横线屏方法第一步使用Type-C连接PC与板子,在PC上使用adb 拉取到项目中,如图:adb pull /system/build.prop第二步: 修改 build.propa) 修改 ro.sf.hwrotation=90b) 增加 sys.hwc.device.primar...原创 2021-01-25 14:41:21 · 1634 阅读 · 2 评论 -
优雅的消除if...else,多种解决方案
我们平常在写代码的时候,肯定有很多判断if...else,但是过长的if...else会给后期维护造成很大的不便。重要的事情说三遍,多敲代码,多敲代码,多敲代码。原创 2021-01-22 14:57:48 · 730 阅读 · 0 评论 -
史上最全破解安卓APK和反编译
准备工具Apktool 反编译 xml 文件和 dex 文件,并可以将编译后的项目重新打包成 apk。 官方下载地址:Apktool dex2jar 将 classes.dex 转换为「.jar」文件) 官方下载地址:dex2jar jd-gui 查看「.jar」文件 官方下载地址:jd-guiApktool我们可以通过 Apktool 可以将 apk 文件进行反编译,但是直接把 apk 的扩展名改成「.zip」也可以对其进行解压并得到一些资源文件。META-IN...原创 2020-12-22 15:06:22 · 21067 阅读 · 4 评论 -
说说CountDownLatch,CyclicBarrier,Semaphore的原理?
CountDownLatchCountDownLatch适用于在多线程的场景需要等待所有子线程全部执行完毕之后再做操作的场景。举个例子,早上部门开会,有人在上厕所,这时候需要等待所有人从厕所回来之后才能开始会议。public class CountDownLatchTest { private static int num = 3; private static CountDownLatch countDownLatch = new CountDownLatch(num)...原创 2020-12-11 09:16:40 · 160 阅读 · 0 评论 -
讯飞、有道、谷歌、微软语音sdk集成总结
前言 最近在研究语音识别、合成、翻译等,由于这个玩意自己开发要消耗大量的人力和物力,所以最后讨论用的第三方的,在这里说明一下讯飞、微软、谷歌、有道等大厂集成效果对比,因为项目用其中某一个都满足不了条件,所以都集成了。讯飞集成、效果说明 讯飞集成sdk路径:https://www.xfyun.cn/doc/asr/voicedictation/Android-SDK.html 讯飞中英文还是挺好的,识别速度挺快的,语音识别差不多1-2秒,语音合成1-2秒,在这里建议那种有.........原创 2020-07-30 14:13:49 · 3787 阅读 · 0 评论 -
解决error performing isolated work; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarE
前言错误很简单,但还是记录一下,帮助需要帮助的人今天编写后台程序,突然报错了,完整错误信息如下:org.springframework.dao.InvalidDataAccessResourceUsageException: error performing isolated work; SQL [n/a]; nested exception is org.hibernate.e...原创 2019-12-18 14:29:17 · 2540 阅读 · 1 评论 -
安卓APK优化瘦身
目录前言webp优化去除多语言只保留armeabi-v7a移除无用资源AndResGuard微信资源压缩方案总结前言 开发apk离不开优化,这一篇给大家带来的是APK优化 废话不多说,直接给出优化方案webp优化 优势: webp编码对于哈夫曼压缩性能更优异些。 哈夫曼与webp本质上都是从编码来解决图像压缩...原创 2019-12-13 16:04:19 · 666 阅读 · 0 评论 -
懒人必备通用的Android-Dialog弹窗sdk
我看到很多封装Dialog的,但是我觉得都有缺点,所以我也就取其中一个封装通用的弹窗Dialog出来,支持AndroidX,支持通用的弹窗、通用的上下滚动选择,希望大家能给出宝贵的意见。Activity或者Fragment中使用.setLayoutRes(R.layout.dialog_click) //设置弹窗展示的xml布局// .setDialogView(view) //设置弹窗布局,直接传入View.setWidth(600) //设置弹窗宽度(px)原创 2019-09-17 14:59:52 · 2057 阅读 · 1 评论 -
解决Android Execution failed for task ‘:app:transformDexArchiveWithDexMergerForDebug‘
Android 报错Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'原创 2019-12-12 15:35:34 · 2658 阅读 · 5 评论 -
安卓gradle各个版本下载
目录说明下载地址说明 当第一次安装Android studio的时候,有很多gradle包下载很慢,故我给出下载链接 假如您没有积分,没有关系欢迎留言邮箱我发给你----邮箱----想要gradle版本----- 后续会不断更新下载地址gradle-3.3-all.ziphttps://download.csdn.n...原创 2019-12-12 10:33:54 · 496 阅读 · 0 评论 -
解决Type com.ta.utdid2.b.a.b$a is referenced as an interface from `com.ta.utdid2.b.a.d$a$a`.
目录说明:解决方案 :说明: 今天引用阿里云热修复的时候报了这个错: 其实很简单但是还是记录一下帮助那些需要帮助的人Type com.ta.utdid2.b.a.b$a is referenced as an interface from `com.ta.utdid2.b.a.d$a$a`. 完整错误信息如下 :org.gradle.in...原创 2019-12-11 11:32:59 · 3980 阅读 · 0 评论 -
懒人必备Android编译时权限申请
版本介绍:v1.1.101.采用aspectj技术2.编译时申请权限不影响性能3.一行代码调用--方便库引入:implementation 'com.github.cl-6666:permissions:v1.1.10'使用介绍:gradle配置:buildscript { repositories { mavenCentral() ...原创 2019-12-04 09:58:07 · 363 阅读 · 0 评论 -
Kotlin学习总结
目录前言基础常量与变量函数定义和使用kotlin基本数据类型, 和java一样, 全改成首字母大写位操作符 和 逻辑操作符数组的常用操作符总结单例,伴生对象,内部类1.单例2.1伴生对象2.2做为普通对象的伴生对象2.3伴生对象实现接口对象表达式界面跳转 1.普通跳转2.携带参数跳转3.关于anko的用法前言...原创 2019-10-11 10:52:27 · 514 阅读 · 0 评论 -
安卓studio创建者修改
安卓studio创建者修改 修改以后的样子原创 2016-06-24 17:08:51 · 931 阅读 · 0 评论 -
Android控件的隐藏与显示
nvisible:不显示,但保留所占的空间visible:正常显示gone:不显示,且不保留所占的空间在布局里面:android:visibility="visible" 正常显示在代码里面: concealLayoutTv.setVisibility(View.VISIBLE);原创 2016-10-24 13:14:13 · 540 阅读 · 0 评论 -
安卓修改颜色遇到的坑
错误修改适配器:if ("2".equals(type)) { holder.setTextColor(R.id.order_tv, R.color.bg_color); 错误方式 holder.setTextColor(R.id.order_tv, mContext.getResources().getColor(R.color.detail_bgColor));原创 2016-10-31 18:02:55 · 451 阅读 · 0 评论 -
当ScrollView包括EditText和RecyclerView报错解决
前言在做项目的时候,经常会遇到滑动冲突,以及焦点问题,废话不多说先上效果图: 在测试代码的时候,无意中发现上下滑动,我指的滑动是非常快,老司机都懂的,滑动的时候无意中抛给我一个异常 第一感觉就是滑动冲突,但是查看代码以后发现在ScrollView中嵌套RecyclerView,其中RecyclerView的item条目中有EditText,在输入文字后,出现界面退出,并报如原创 2017-08-24 16:27:32 · 720 阅读 · 0 评论 -
关于Edittext首位为0多种情况考虑
前言在发这一篇文章之前,我也查询过别人的写法,我个人觉得都不是很满意,所以就自己写了一个,因为我们项目中经常会遇到输入数字的时候各种限制。 首先介绍第一种情况,当用户首为输入为0的时候,就禁止输入,贴上代码://第一种情况 if (integral.toString().equals("0") || s.toString().startsWith("0")) {原创 2017-08-29 16:50:14 · 1237 阅读 · 0 评论 -
窗体泄露 android.view.WindowLeaked: Activity XxxActivity has leaked window android.widget.PopupWindow$Po
目录前言Why怎么解决How to 办?前言搞项目的时候遇到一个Bug,当ListPopupWindow显示的时候,按返回键就会报标题类似的错误。但是在点击Toolbar的NavigationIcon时(设置了finish的点击事件),却不会报这个窗体溢出的Bug。Why首先来了解下这个错误产生的原因(呃,网上说的很清楚了,我就直接复制了):Andr...原创 2017-04-07 14:53:01 · 10073 阅读 · 9 评论 -
关于集成Bmob遇到的坑
1.因为我的项目用到的开源组件比较多,所以遇到了不少坑,在这里给大家分享一下。2.首先我列举报的错误: Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com...原创 2017-06-25 20:11:37 · 4857 阅读 · 2 评论 -
介绍多张图片压缩转Bas64速度优化问题
今天项目有一个需求,要求多张图片上传,并且时间在7秒左右,废话不多说上效果图 我解决的方案有二种:第一种是用线程的方式去上传图片,结果发现同时压缩4M的图非常的慢,以及中途转Bas64用时20多秒,当然这根据机型而定,代码非常的简单我还是贴出来:StringBuffer stringBuffer = new StringBuffer(); for (in原创 2017-08-24 16:56:14 · 966 阅读 · 0 评论 -
Http-Post请求特殊符号变空格的问题解决
今天在调试客户端向服务器传递参数时,url出现+,空格,/,?,%,#,&,=等特殊符号的时候就自动变成空格,可能在服务器端无法获得正确的参数值解决方法如下:URL字符转义 1. URL 中+号表示空格 %2B 空格 URL中的空格可以用+号或者编码 %20 / 分隔目录和子目录原创 2017-09-06 10:33:26 · 28677 阅读 · 4 评论 -
RxJava 2.x入门教程
前言首先来说一下rxjava1和rxjava2的区别吧,附带一些RxJava 1升级到RxJava 2过程中踩过的一些“坑”,RxJava 对大家而言肯定不陌生,其受欢迎程度不言而喻。而在去年的早些时候,官方便宣布,将在一段时间后不再对 RxJava 1.x 进行维护,而在仓库中另辟蹊径,开始对 RxJava 2.x 进行推广起来,我原本是不想写这么一套教程的,因为 RxJava 受欢迎度这么高,而原创 2017-09-21 16:50:00 · 995 阅读 · 0 评论 -
免费api接口二
首发原文:[厉害了Word哥]这些API接口,随便拿出来一个就能装逼、赚钱 (文中图片信息请点该链接查看)“想写个 App 练手,有什么有趣的 API 接口推荐吗?”这是知乎上的一个很好的问题。我们为你整理了这些答案,下面的几乎每个接口,都可以激发你做个APP出来装逼的欲望......(问题链接:https://www.zhihu.com/question/39479原创 2016-11-16 17:15:24 · 7293 阅读 · 0 评论 -
终极解决AndroidStudio缓存的坑
废话不多说我是你们的力哥,今天在用Android Studio的时候打开之前项目报如下错误: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181101101013769.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLm...原创 2018-11-01 10:24:23 · 8510 阅读 · 1 评论 -
懒人必备Android仿微信图片选择库sdk
之所以写这个图片选择库是因为大部分项目都会用到,所以就抽时间写了一个sdk处理。原创 2019-07-09 18:19:05 · 767 阅读 · 0 评论 -
MAC电脑用adb命令安装APK
就写到这里了,小伙伴们也去试试吧,不行的话欢迎小伙伴们留言。这个时候会弹出一个这种框需要你配置路径比如我的路径是这个。原创 2019-05-28 10:25:26 · 4737 阅读 · 0 评论 -
Android图片压缩工具,仿微信朋友圈压缩策略Luban(鲁班)
目录介绍效果与对比使用简单分析源码算法步骤介绍 目前做App开发总绕不开图片这个元素。但是随着手机拍照分辨率的提升,图片的压缩成为一个很重要的问题。单纯对图片进行裁切,压缩已经有很多文章介绍。但是裁切成多少,压缩成多少却很难控制好,裁切过头图片太小,质量压缩过头则显示效果太差。 于是自然想到App巨头“微信”会是怎么处理,Luban(鲁班)就是...原创 2019-05-30 16:11:14 · 3628 阅读 · 2 评论 -
解决ERROR: Could not find manifest-merger.jar (com.android.tools.build:manifest-merger:26.0.0). Search
错误信息今天在拉别人的项目的时候报了这个错记录一下,错误大概就是:ERROR: Could not find manifest-merger.jar (com.android.tools.build:manifest-merger:26.0.0).Searched in the following locations: https://jcenter.bintray.com...原创 2019-05-30 11:26:26 · 2112 阅读 · 0 评论