- 博客(117)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 Mac环境配置及开发遇到的问题记录
Mac环境配置及开发遇到的问题记录环境配置1. zsh 切换 bash 提示 chsh: no changes made 问题2. zsh: command not found: brew3. 无法访问 使用国内镜像4. git 缺失开发遇到的问题1. 允许任何来源的软件2. XCode 运行真机3. Flutter 运行真机报错4. 无法打开“iproxy”,因为无法验证开发者。环境配置目前是参考这个配置的iterm参考这个配置iterm也可以配置过程中出现的问题1. zsh 切换 bash
2022-03-30 14:48:47
3496
原创 Mac 新建unix可执行文件
新建一个文本,输入要执行的终端命令,然后另存为无格式文件, 比如另存为名script.然后打开终端,输入 sudo chmod u+x script 这个script要写成那个文件的绝对路径.比如 sudo chmod u+x /Users/xxx/Desktop/script执行后,那个script文件就会变成类似批处理的文件.双击就能运行里面的终端命令....
2021-12-06 11:33:01
2414
原创 Android TextView 文字两端对齐
Android 自带的 TextView 的对齐方式只能左对齐或者右对齐,如果想要两端都对齐就需要自定义控件,但是有一个更简单的方法就是使用 WebView, 通过设置 text-align:justify 就可以XML 文件:<WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="wrap_content" android:backg
2021-10-11 17:02:57
3170
1
原创 CSS样式加载base64格式图片失败
CSS样式加载base64格式图片失败.icon { background-image:url('data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABsAAAAjCAMAAABSI4GnAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAG6ADAAQAAAABAAAAIwAAAABnXqe+AAABF1B
2021-08-31 18:23:27
684
原创 Flutter state生命周期方法之didChangeDependencies 、didUpdateWidget
Flutter state生命周期方法之didChangeDependencies 、didUpdateWidgetdidChangeDependencies: 会在当前控件的父控件的类型发生变化时调用,但是当前控件的爷爷控件的类型发生变化时不会调用,父控件的属性发生变化也不会调用didUpdateWidget: 会在当前控件的父控件或者爷爷控件调用 setState 时调用...
2021-06-09 14:15:53
3252
2
原创 java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
今天执行 flutter doctor -v 的时候发现一个问题,提示信息是[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2) • Android SDK at /Users/zhaopingfu/Library/Android/sdk • Platform android-S, build-tools 30.0.2 • Java binary at: /Applicati
2021-05-25 10:02:43
4800
原创 Flutter 修改默认生成的 minSdkVersion
Flutter 修改默认生成的 minSdkVersion问题flutter pub get 会自动生成 android 目录,但是如果要修改 build.gradle 文件里面的内容,需要每次都要手动改一下,很麻烦解决办法修改 flutter 自动生成的 build.gradle 的模板文件模板文件路径: flutter_sdk/packages/flutter_tools/templates/module/android/host_app_common/app.tmpl/build.gradl
2021-05-24 12:59:11
6464
2
原创 replaceAll IndexOutOfException: No group xx
public static void main(String[] args) { String regex = "s"; String replacement = "$10"; String str = "stop the world"; String result = str.replaceAll(regex, replacement); System.out.println(result); }上面这段代...
2021-04-15 17:32:22
543
原创 GitLab SSH clone
对GitLab, SSH 方式进行 clone1. Git配置运行 Git Bash, 先配置用户名和邮箱git config --global user.name "用户名"git config --global user.email "邮箱"git config --global core.autocrlf false (禁止自动转换换行符)生成秘钥 SSH Keycd ~/.ssh 如果没有就自行创建一个 mkdir .sshssh-keygen -t rsa -
2020-07-17 13:11:46
833
原创 自定义 `Flutter` 的页面切换动画
1. 首先先定义一个自己想要的动画Route createRoute(Widget widget) { return PageRouteBuilder( transitionDuration: Duration(milliseconds: 300), pageBuilder: (context, animation, secondaryAnimation) => widget, transitionsBuilder: (context, animation,
2020-05-09 17:03:40
716
原创 Could not find tools.jar. Please check that E:\software\jdk-8u202\java contains a valid JDK installa
Could not find tools.jar. Please check that E:\software\jdk-8u202\java contains a valid JDK installation我的 jdk 安装目录是 E:\software\jdk-8u202, 然后环境变量也是正常的, 但是执行打包的时候 ':app:compileDebugJavaWithJavac' 任务会提示找不到jdk* What went wrong: Execution failed for task ':
2020-05-09 10:47:30
3579
1
原创 序列化与反序列化
序列化和反序列化1、什么是序列化和反序列化?比如说,我看到埃菲尔铁塔很漂亮,想把它搬到我家门口,要求搬过去之后还是原来的样子,怎么办呢?我需要把每一根钢筋都拆下来,做上标记,然后把钢筋都装到飞机上运到目的地之后,把钢筋都卸下来,然后按照之前的标记,把钢筋组装起来,就变回埃菲尔铁塔了这就是现实生活中的序列化和反序列化,那么反映到程序里面是怎样的呢?要把一个对象,写入到文件里,在需要...
2019-10-04 09:38:55
206
原创 Android热修复原理
Demo1、热修复原理一般我们自己写的类都是由 PathClassLoader 加载的,类加载器在加载某个类的时候是先去父加载器那里找,父加载器再去爷爷加载器那里找,一直往上,如果都找不到,才自己去找,这就是java的双亲委托机制通过 ClassLoader.loadClass 的时候会先走 parent 的 loadClass, 如果没找到会自己去找。调用 findClass 方...
2019-10-03 21:43:23
288
原创 git-hook提交之前检测代码
在用 Robust 热修复的时候,修复完成之后代码里有很多的 @Add 和 @Modify 注解,但是这些内容不应该提交到 git 上面去,提交的时候人工检测又很麻烦,所以在 git commit 之前进行 hook,在提交的时候之前进行检测代码里是否有不能提交的内容在 git 项目根目录下的 .git/hooks/ 下有一堆的 xxx.sample 文件,前面的名字表示会在什么阶段起作用,把 ...
2019-09-21 14:31:09
2075
原创 WIndows Git简写配置
在官网上查了简写,是 alias.st = status用的时候还要 git st为什么不能把 git 也省略掉, 直接 st 呢Windows Git 简写配置1、找到 git 安装目录下的 etc 文件夹里面的 bash.bashrc 文件我这里是 E:\software\git\Git\etcbash.bashrc2、在文件的最后面添加需要的配置后保存alias g=‘g...
2019-08-25 09:08:01
1095
原创 Android 热修复调研
SophixAndFix 在 GitHub 上的最后一次提交记录是在三年前了,而且提的很多 issue 也没有人回复,估计是放弃这个方案了,在推 Sophix .Sophix:支持方法级别的修复支持资源的修改,添加补丁包较小傻瓜式接入看了下官网的介绍,然后自己集成了一下他的SDK,模拟了几个问题,依次生成补丁包,修复,走了一遍流程我这里试了三个版本的 4.4、 6.0、 9...
2019-08-08 14:18:38
476
原创 Android 事件传递
getAction() 和 getActionMasked()getAction() 是以前的版本出来的getActionMasked() 是为了多点触控, 现在用的话都选这个就好shouldDelayChildPressedState()自定义容器的时候, 如果不需要滚动, 那么需要重写 shouldDelayChildPressedState() , 并且返回 false , 这个方法...
2019-07-21 20:03:36
402
原创 Android 自定义控件的 measure, layout
Android 自定义控件的 measure, layoutAndroid 自定义 View 一般都要写 测量, 摆放在 onMeasure 里面测量出自己的宽高, 然后父控件会根据自己测量出来的宽高来进行摆放(layout)如果不按照父容器的约束来, 就会出问题重写了 layout 方法, 摆放的很大, 但是父容器那里的尺寸并没有改, 所以其他的 view 就会有重叠<?xml ...
2019-07-10 10:04:13
250
原创 Andrid Bimap 和 Drawable
Bitmap 和 Drawable1、Bitmap 是什么?Bit 位 map 图Bitmap 存储的是每一个像素点的信息Drawable 是一个可画的对象, 可能是一个位图(BitmapDrawable), 也可能是一个图形(ShapeDrawable)class DrawableView(context: Context?, attrs: AttributeSet?) : View(...
2019-07-08 15:28:27
312
原创 Android 属性动画与硬件加速
1、属性动画1.1、ViewPropertyAnimator/*** 最简单的动画,只能 平移,旋转,缩放等简单的*/private fun animation() { view.animate() .translationX(dp2px(200F)) .translationY(dp2px(200F)) .scaleX(1.5F) ...
2019-07-08 10:12:24
970
原创 Gradle 任务
1、任务执行顺序 task clean(type: Delete) { println "task clean 1111111" delete rootProject.buildDir doLast { println "task clean dolast one" } doLast { pri...
2019-07-08 10:11:30
594
原创 Android 文字绘制和Camera几何变换
文字绘制文字绘制的位置是基于基线(BaseLine)// 0F, 0F 指的是基线的位置, 而不是文字的左上角位置, 基线在文字左下角偏上一点点的位置canvas.drawText(mText, 0F, 0F, mTextPaint)TextView 内容准确定位getTextBoundsmTextPaint.getTextBounds 可以获取到这一行文字的准确坐标, 然后根...
2019-07-02 13:39:21
412
原创 Android 绘制 Path
Path.Direction顺时针 Path.Direction.CW逆时针 Path.Direction.CCWmPath.addCircle(dp2px(100F), dp2px(100F), dp2px(50F), Path.Direction.CW)mPath.addCircle(dp2px(180F), dp2px(100F), dp2px(50F), Path.Dire...
2019-07-02 10:20:50
398
原创 横向摆放控件,空间不足时右边不动,挤压左边
需求: 横向摆放控件 当数据不多的时候,靠左边显示 当左边控件的数据慢慢变多,就往右边挤 当右边的控件到达最右边的时候,固定右边不动,挤压左边的控件解决方法:这里到了 google 的 FlexboxLayout: com.google.android:flexbox:xxxlayout_flexShrink 属性可以解决这个问题 layout_flexShrink 属性定...
2019-05-14 10:40:23
958
原创 ffplay播放pcm
ffplay 播放 pcm 数据一、正常播放ffplay 是 ffmpeg 中的一部分,所以需要先下载 ffmpeg,可以参考这里ffplay 需要在 cmd 下输入命令ffplay -ar 44100 -ac 1 -f s16le -i ./201904091310_test.pcm-ar 表示采样率-ac 表示音频通道数 单声道是 1,Android 中为 AudioForm...
2019-04-15 14:51:01
10556
原创 windows 安装 ffmpeg
windows 上安装 ffmpeg1、下载 ffmpegffmpeg 下载地址: https://ffmpeg.zeranoe.com/builds/2、解压、安装直接解压之后就好了,然后把里面的内容挪到自己的目录下3、配置环境变量将 ffmpeg 目录下的 bin 目录配置到环境量 path 中4、检查配置是否成功cmd 下检查版本命令: ffmpeg -versi...
2019-04-11 11:58:04
636
原创 Android library 库分享不同的内容
library 库分享不同的内容问题:library module 的 assets 下有图片也有一些别的数据, A 库引入 library 的时候只要图片, B 库引入 library 的时候只要数据,这个时候该怎么办呢1、在 gradle 3.0 之前library 的 build.gradle 配置风味// 默认只发布release的,这里修改为发布多种的pub...
2018-08-19 12:38:12
283
原创 Android 动态替换 Manifest.xml中的值
根据情况替换 Manifest.xml 中的值android 中有很多个渠道,每个渠道都有 debug 和 release 版本, 如果Manifest.xml 中每个版本有不同的值一般的可以用 manifestPlaceholders = [APP_KEY : '对应的值'] 来替换,在 debug和 release 的时候也可以,但是多渠道的时候可能就会有些问题了解决方式...
2018-08-18 15:37:19
5165
原创 Kotlin 调用 Java
Kotlin 调用 Java1、属性名或者方法名是关键字在 kotlin 中 is、object等都是关键字,但是 java 中不是public static void is() {}public static void object() {}在 kotlin 中调用的时候需要添加 `名字`// is object 是关键字JavaTest.`is`()JavaTes...
2018-05-29 14:12:38
1197
1
原创 Java 调用 Kotlin
Java 调用 Kotlin1、kotlin编译后会生成一个 类名 + Kt ,如果不想使用这个名字,可以自己自定义在文件第一行添加注解 @file:JvmName("名字")例如 @file:JvmName("Hello")2、访问顶层属性var name = "1"通过 文件名Kt 来调用set/get方法String name = JavaClassKt.get..
2018-05-29 14:11:20
4197
原创 java 毫秒转化为xx天xx时xx分xx秒
// 毫秒数转换为xx 天 xx 时 xx 分 xx 秒 long ms = (1_000 * 60 * 60 * 24 * 2) // 2 天 + (1_000 * 60 * 60 * 2) // 2 时 + (1_000 * 60 * 2) // 2 分 + (1_000 * 2)...
2018-05-24 14:34:28
1432
原创 apt 调试
AndroidStudio 下 apt 调试测试 apt 的时候创建一个 java library,写个类继承 AbstractProcessor之后在 process 中调试注意:在那个模块调试,就在那个模块下的相应任务下右键创建任务注意:在执行任务之前,确保 app 模块下引入了 aptannotationProcessor project(':...
2018-04-07 11:54:01
6243
原创 Eclipse中Android项目Errors running builder 'Android Resource Manager' on project XXX
Eclipse下Android项目编译的时候报了 Errors running builder 'Android Resource Manager' on project XXX 错误,最后发现是工程目录下少了一个文件 project.properties解决办法: 在工程目录下新建文件 project.properties,在里面写 target=android-xxx,例如: targe...
2018-03-12 17:17:23
1201
原创 Java数据结构--图的遍历与最小生成树
图的遍历图的遍历分为深度优先遍历(相当于树中的前序遍历)和广度优先遍历(类似树中的层级遍历)深度优先遍历广度优先遍历最小生成树一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边。我们把构造连通网的最小代价生成树。称为最小生成树。找连通网的最小生成树,经典的有两种算法,普里姆算法和克鲁斯卡尔算法普里姆算法克鲁斯卡尔算...
2018-02-21 14:27:27
564
原创 AndroidStudio 创建 java-library 引入第三方库 NoClassDefFoundError
在 AndroidStudio 中创建了一个 java-library ,引入第三方库,不管是 jar包 还是在 build.gradle 中添加依赖,在运行的时候 java.lang.NoClassDefFoundError 原因这里没有把这个 jar 包添加到 classpath, 要工具依赖 ,让工具执行引入依赖。不然直接 run as 不帮你配制解决1、在 ...
2018-02-05 09:43:57
4243
2
httpclient
2017-04-05
hprof-conv.exe
2017-03-25
已经装了Git,但是SourseTree无法安装成功
2016-11-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人