工具
文章平均质量分 61
zhudaihai
代码改变世界
展开
-
studio编译报错java.lang.NullPointerException
编译报错原创 2024-07-18 16:31:55 · 297 阅读 · 0 评论 -
studio 设置jdk版本
studio编辑问题原创 2022-12-09 15:38:13 · 914 阅读 · 0 评论 -
flutter打包命令
flutter命令打包原创 2022-11-28 17:25:39 · 1070 阅读 · 0 评论 -
flutter构建项目慢
打开控制面板设置如下系统环境变量变量:PUB_HOSTED_URL 值:https://pub.flutter-io.cn变量:FLUTTER_STORAGE_BASE_URL 值:https://storage.flutter-io.cn原创 2022-07-09 22:38:11 · 653 阅读 · 0 评论 -
使用AS快捷键拉取代码报错
之前使用一直正常,更新了AS版本后就有问题,使用Git命令正常,判断是AS设置问题,报错日志:11:10 Update failed Invocation failed Unexpected end of file from server java.lang.RuntimeException: Invocation failed Unexpected end of file from server at org.jet...原创 2022-05-10 11:17:54 · 278 阅读 · 0 评论 -
Error connecting to the service protocol: failed to connect to
今天开发Flutter运行项目报错:Error connecting to the service protocol: failed to connect to尝试:1:重启AS无效2:上网查说模拟器版本太高,但是我一直用这模拟器开发都正常的啊,排除版本导致3:又看到说要真机,我知道真机可以但是以前用模拟器一直正常的呀4:又看到说网络问题,我模拟器用电脑网络不可能网络问题,最后解决方法:重启模拟器...原创 2022-03-21 16:05:09 · 10279 阅读 · 1 评论 -
Flutter性能优化—UI
耗时三个月总结的flutter性能分析,希望能给你带来一些收获原理篇Flutter的架构主要分成三层:Framework,Engine和EmbedderFramework使用dart实现主要提供我们开发用的APIEngine使用C++实现,主要包括:Skia,Dart和Text。Skia是开源的二维图形库,提供了适用于多种软硬件平台的通用APIEmbedder是一个嵌入层,即把Flutter嵌入到各个平台上去,这里做的主要工作包括渲染Surface设置,线程设置,以及插件等F原创 2022-03-22 12:05:42 · 1257 阅读 · 0 评论 -
studio 拉取代码报错 Invocation failed Unexpected end of file from server
Update failed Invocation failed Unexpected end of file from server java.lang.RuntimeException: Invocation failed Unexpected end of file from server at org.jetbrains.git4idea.GitAppUtil.sendXmlRequest(GitAppUtil.java:30)...原创 2022-03-17 20:21:21 · 1363 阅读 · 3 评论 -
flutter代码规范配置
背景学习新的语法时,经常会习惯性带上以前使用的语法风格,导致新的语法不规范,为了能够编写出更加健壮的flutter代码,谷歌在SDK2.3.0开始出了flutter代码规范检查,方便我们在开发时及时发现我们代码问题。如果你创建项目时使用的SDK是2.3.0以上默认是配置代码规范的,我现在说下2.3.0以下怎么配置代码规范。配置1:检查你的SDK是否高于2.3.0,没有就更新高版本sdk配置2:在项目根目录创建analysis_options.yaml文件 (文件内容如下)# This原创 2022-03-07 10:59:39 · 3376 阅读 · 0 评论 -
flutter限制数字输入
背景在开发中经常会遇到需要对输入的数字限制的需求,比如限制输入几位小数,或者只能输入整数,或者支持负数。。。实现类/* * @Author: zhudaihao * @Date: 2022/2/25 * @Describe: 限制输入数字和小数后位数 */class NumberInputLimit extends TextInputFormatter { ///输入字符的范围 String inputScope; ///允许的小数位数 final int? dig原创 2022-03-04 22:03:55 · 3999 阅读 · 0 评论 -
flutter集成极光推送
注册极光账号登记极光官网https://www.jiguang.cn/push?source=bdpc&plan=4&unit=80&keyword=5286点击应用管理点击创建应用,填写应用信息后点击确定保存AppKey(项目需要配置)填写项目包名(注意填写后不能修改)有华为oppo等厂商key可以配置提供推送效果在flutter项目的pubspec.yaml 中加入 依赖包dependencies: #极光推送 jpu...原创 2022-03-02 16:52:33 · 5070 阅读 · 2 评论 -
Flutter 的md5 base64加密解密使用
1.更新pubspec.yaml:dependencies: flutter: sdk: flutter crypto: ^2.0.62.md5加密:import 'dart:convert';import 'package:convert/convert.dart';import 'package:crypto/crypto.dart';/// md5 加密static String string2Md5(String data) {var conten原创 2022-02-27 17:49:31 · 1740 阅读 · 1 评论 -
flutter_boost混合开发框架集成教程
背景随着Flutter的发展,国内越来越多的App开始使用Flutter。为了降低风险,大部分App采用渐进式方式引入Flutter,在App里选几个页面用Flutter来编写,但都碰到了相同的问题,在原生页面和Flutter页面共存的情况下,如何管理路由? 官方没有提供这样的解决方案,而FlutterBoost就是为了解决这个问题而生。开源方案对比集成流程flutter配置flutter配置 第一步:在pubspec.yaml添加依赖flutter_boost: ..原创 2022-02-21 16:11:36 · 1890 阅读 · 0 评论 -
studio 不能输入中文
将以下内容,添加到androidstudo/bin,studio.sh的第2行即可export XMODIFIERS=@im=fcitxexport QT_IM_MODULE=fcitx文件路径替换的文件替换后记得重启AS原创 2021-11-11 17:23:29 · 335 阅读 · 0 评论 -
Flutter使用阿里矢量图库管理项目svg图片
为什么使用阿里svg图片方便管理项目图标和协调开发,svg图标占用内存小使用:1登录阿里矢量图标库iconfont-阿里巴巴矢量图标库创建项目 上传项目需要的svg图标2安装脚手架,(作用:通过命令自动生成需要的图标资源代码,)下载 | Node.js (nodejs.org)安装后执行下面命令1安装 flutter-iconfont-cli命令npm install flutter-iconfont-cli -g2生成 iconfont 配置文件命...原创 2021-09-26 17:25:59 · 1003 阅读 · 0 评论 -
Android的https抓包 之使用Charles
Charles安装1下载Charles这里给出官网下载的链接 百度网盘链接:https://pan.baidu.com/s/1F58bzo29uD0ZeiZ1PBQcEQ 提取码:66662安装Charles(默认配置安装)3安装根证书原创 2021-09-14 17:17:54 · 582 阅读 · 0 评论 -
Flutter 环境安装
官网引导:https://flutter.io/docs/get-started/install我们以Mac环境为例:1、下载Flutter SDK:https://flutter.io/docs/get-started/install/macos下载的SDK解压到一个目录。2、添加环境变量export PATH=$PATH:[你的flutter路径]/flutter/bin1添加环境变量的步骤可以看这个:https://blog.csdn.net/mengks1987/article/d原创 2021-05-31 23:36:47 · 175 阅读 · 3 评论 -
com.android.ide.common.signing.KeytoolException: Failed to read key android from store
studio更新到4.2.1发现新建项目运行报这个错,我电脑是新装的studio,默认项目是可以运行的,但导致旧项目,需要更改默认安装的jdk为jdk1.8项目才能正常运行,但就项目可以运行新建项目就报这个错,配置V2的签名发现正常,如果你的签名不上V2编译还是报这个错的。// 关于v2SigningEnabled, 见https://develope.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2//v2Sig.原创 2021-05-16 17:45:59 · 5714 阅读 · 0 评论 -
项目中如何实现一键快速切换sp到mmkv
最近看到很多博客都在分享sp的前世今生问题,或者说mmkv性能的优越,很少有介绍,在实际开发中实现一键快速切换sp到mmkv或者后面谷歌推出的DataStore;今天我从架构层面实现一键快速切换sp到mmkv或者DataStore;需求:我希望在业务代码使用后,后期替换新的框架就不用动业务逻辑代码,只需要配置下就可以切换我新的框架。实现思路:我们可以考虑使用静态代理模式实现需要。1:定义个顶层接口,接口里面定义抽象方法2:再定义个实现类,实现接口里面的方法3:再定义个代理类,代理类也原创 2021-03-13 16:26:10 · 583 阅读 · 2 评论 -
fragment的RadioButton 懒加载
/*** * @author zhudaihao * @date 2020/8/11 * 实现RadioButton 懒加载 */public abstract class BaseLazyNewFragment extends BaseFragment { public Unbinder unbinder; protected View rootView; private boolean isHidden = true;//记录当前fragment是否隐藏:隐藏true.原创 2021-03-03 18:46:04 · 92 阅读 · 1 评论 -
滑动title变色加背景高斯模糊效果实现
//XRecyclerView的滑动,,判断向上滑动的距离是否大于yrecyclerView.setOnScrollChangeListener(new View.OnScrollChangeListener() { @Override public void onScrollChange(View view, int i, int i1, int i2, int i3)...原创 2021-03-01 09:15:24 · 119 阅读 · 0 评论 -
安卓责任链模式实现
责任链模式顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。介绍意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止.原创 2021-01-24 22:20:51 · 138 阅读 · 0 评论 -
com.youth.banner.Banner 使用glide加载圆角图片无效
在使用com.youth.banner.Banner时,使用glide加载器设置圆角无效//设置图片加载器banner.setImageLoader(new GlideImageLoader());//加载器代码public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imag.原创 2020-11-02 13:41:09 · 6190 阅读 · 2 评论 -
安卓通知封装工具类兼容8.0以上版本
//安卓在8.0对通知有比较大更新,旧的API在8.0以上版本失效,下面封装工具类方便使用/** * @author zhudaihao * @date 2020-10-13 * 通知工具类 */public class NotificationUtils { /** * 创建渠道兼容8.0以上版本 * * @param channelId 渠道id * @param channelName 渠道名称 * @param impo.原创 2020-10-13 16:52:35 · 247 阅读 · 0 评论 -
Flutter 封装GlobalKey 实现局部刷新
封装类:///封装 通用局部刷新工具类typedef BuildWidget = Widget Function();// ignore: must_be_immutableclass PartRefreshWidget extends StatefulWidget { ///具体需要刷新的widget BuildWidget _child; ///Key 外部使用的GlobalKey PartRefreshWidget(Key key, this._child) : sup原创 2020-10-10 14:39:35 · 835 阅读 · 0 评论 -
android 设置TextView 字体大小不一致
private SpannableString changTVsize(String value) { SpannableString spannableString = new SpannableString(value); //0.6f设置字体大小,0-1表示需要修改文字的位置 spannableString.setSpan(new RelativeSizeSpan(0.6f), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); retur.原创 2020-09-02 11:03:41 · 692 阅读 · 0 评论 -
dart代码规范
dart注解方式有很多比多// 或者/***/ 等建议使用/// 例如import'package:flutter/material.dart';///APP首页入口//////本模块函数,加载状态类组件HomePageStateclassHomePageextendsStatefulWidget{@overridecreateState()=>newHomePageState();}///首页有状态组件类//////主要是获取当前时间,并...原创 2020-08-25 09:51:09 · 347 阅读 · 0 评论 -
解决Gradle download慢导致build失败
//在工程build里面添加 阿里镜像 maven{url'http://maven.aliyun.com/nexus/content/groups/public/'}如下buildscript { repositories { google() maven{url'http://maven.aliyun.com/nexus/content/groups/public/'} jcenter() } dependencie.原创 2020-08-14 10:27:10 · 516 阅读 · 0 评论 -
AS 的Plugins 搜索不了插件,连接超时
升级AS到4.0发现Plugins 连接不上网了解决方法:https://127.0.0.1:1080//如果还不行就需要到那也可以从IDEA官网下载离线插件并安装http://plugins.jetbrains.com/原创 2020-07-06 14:59:43 · 703 阅读 · 0 评论 -
android 设置字符串中包含相关文字设置文字颜色
public class StringColourUtils { /** * @param content 文本 * @param colourTxt 变色字体 * @param color 颜色 #3666F2 * @return */ public static Spanned setStringColor(String content, String colourTxt, String color) { .原创 2020-07-03 12:45:12 · 276 阅读 · 0 评论 -
骚年都2020年了你还在用EventBus吗?jetpack之liveData
在说源码时简单说下liveData使用1创建一个类实现ViewModel,定义一个方法获取liveData/*** liveData是个抽象类 ,可以理解为一个能感知生命周期的仓库* mutableLIveData 是他的实现类*/public class MyViewModel extends ViewModel { //注意使用static修饰 源码直接通过类获取...原创 2020-03-15 14:52:51 · 2078 阅读 · 0 评论 -
liveDataBus使用篇
在工程的build.gradle配置allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } }}在model的build.gradle配置dependencies {implementation 'co...原创 2020-03-15 14:32:59 · 1409 阅读 · 0 评论 -
安卓性能优化 -apk瘦身
apk的瘦身分7步骤1:图片格式转换为webp格式AS自带转换工具webp对图片的压缩,效率可以达到99%,比libjepg使用哈夫曼压缩效率还高,(libjepg使用的是哈夫曼对rgb元素进行变频压缩,webp使用预测技术压缩,利用关键帧 对四面预测 )选中需要转换的图片所在的文件夹,鼠标右键选择convert towebp, 工具就会把可以转换的图片批量转换为webp,有些图...原创 2020-02-11 20:28:04 · 262 阅读 · 0 评论 -
安卓性能优化—UI绘制优化
要优化UI绘制,首先需要知道,安卓系统绘制流程比如你再XML 绘制一个Butte↓安卓系统会把Butte信息交给CPU↓CPU把UI对象通过逻辑计算 转换成纹理↓(CPU和GPU通信OpenGL)GPU拿到CPU的纹理信息(栅格化:纹理信息转换成位图),在屏幕上绘制渲染//通过了解UI绘制流程,知道UI绘制主要由CPU和GPU负责,减少他们的工作就达到了...原创 2020-02-07 14:23:46 · 268 阅读 · 0 评论 -
AS配置clang
externalNativeBuild { cmake { cppFlags "" abiFilters "x86" abiFilters "x86_64" //指定android的编译器 arguments '-DANDROID_TOOLCHAIN=clang' }}原创 2020-02-07 14:22:32 · 410 阅读 · 0 评论 -
安卓性能优化 -枚举
//安卓枚举是十分好内存的,我们可以使用public static final 类替代枚举使用#例子public class SHAPE { public static final int RECTANGLE=0; public static final int TRIANGLE=1; public static final int SQUARE=2; pu...原创 2020-02-07 13:25:28 · 176 阅读 · 0 评论 -
安卓电量优化 加入白名单
public class Battery { public static void addWhite(Activity activity){ PowerManager packageManager = (PowerManager) activity.getSystemService(Context.POWER_SERVICE); //应用是否在 白名单中...原创 2020-02-06 19:17:30 · 3090 阅读 · 0 评论 -
安卓性能优化-电量优化
app耗电问题,现在越来越受到用户关注,优化APP耗电问题,也是越来越受到重视了。app电量优化,我们需要谷歌提供的电量历史报告分析表,分析APP耗电情况,//获取app的电量历史报告,//获取电量历史报告1:手机连接电脑 ,在控制台输入命令重置: adb shell dumpsys batterystats --reset2:获取完整的wakelock信息: ...原创 2020-02-06 17:05:43 · 226 阅读 · 0 评论 -
安卓性能优化 --图片优化
安卓开发中图片使用的频率也很高,占用的内存也是比较多,如何优化图片成为安卓开发中一个比较常见的问题。图片的优化大概可以从几个维度优化:图片压缩优化,图片色彩模式优化,图片缓存优化,长图优化图片压缩优化》图片压缩优化又可以从三个方面优化 图片的尺寸压缩 ,图片的质量压缩,图片的格式转换压缩图片的尺寸压缩:改变图片的尺寸,比如原图是100*100的,实际我只需要50*50的图片,这时我们就...原创 2020-02-04 21:42:22 · 245 阅读 · 1 评论 -
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
今天导个老项目提示错误No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-androidNDK配置问题;解决方法#1下载ndk;建议下载17目前比较稳下载ndk地址:https://developer.android.google.cn/ndk/download...原创 2020-01-17 15:23:52 · 122 阅读 · 0 评论