自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 二进制学习

二进制学习及使用场景

2023-01-11 10:48:38 1319

原创 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 3245

原创 Mac 新建unix可执行文件

新建一个文本,输入要执行的终端命令,然后另存为无格式文件, 比如另存为名script.然后打开终端,输入 sudo chmod u+x script 这个script要写成那个文件的绝对路径.比如 sudo chmod u+x /Users/xxx/Desktop/script执行后,那个script文件就会变成类似批处理的文件.双击就能运行里面的终端命令....

2021-12-06 11:33:01 1956

原创 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 2834 1

原创 CSS样式加载base64格式图片失败

CSS样式加载base64格式图片失败.icon { background-image:url('data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABsAAAAjCAMAAABSI4GnAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAG6ADAAQAAAABAAAAIwAAAABnXqe+AAABF1B

2021-08-31 18:23:27 483

原创 Flutter state生命周期方法之didChangeDependencies 、didUpdateWidget

Flutter state生命周期方法之didChangeDependencies 、didUpdateWidgetdidChangeDependencies: 会在当前控件的父控件的类型发生变化时调用,但是当前控件的爷爷控件的类型发生变化时不会调用,父控件的属性发生变化也不会调用didUpdateWidget: 会在当前控件的父控件或者爷爷控件调用 setState 时调用...

2021-06-09 14:15:53 2677 1

原创 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 3864

原创 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 6221 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 450

原创 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 670

原创 自定义 `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 586

原创 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 3449 1

原创 序列化与反序列化

序列化和反序列化1、什么是序列化和反序列化?比如说,我看到埃菲尔铁塔很漂亮,想把它搬到我家门口,要求搬过去之后还是原来的样子,怎么办呢?我需要把每一根钢筋都拆下来,做上标记,然后把钢筋都装到飞机上运到目的地之后,把钢筋都卸下来,然后按照之前的标记,把钢筋组装起来,就变回埃菲尔铁塔了这就是现实生活中的序列化和反序列化,那么反映到程序里面是怎样的呢?要把一个对象,写入到文件里,在需要...

2019-10-04 09:38:55 172

原创 Android热修复原理

Demo1、热修复原理一般我们自己写的类都是由 PathClassLoader 加载的,类加载器在加载某个类的时候是先去父加载器那里找,父加载器再去爷爷加载器那里找,一直往上,如果都找不到,才自己去找,这就是java的双亲委托机制通过 ClassLoader.loadClass 的时候会先走 parent 的 loadClass, 如果没找到会自己去找。调用 findClass 方...

2019-10-03 21:43:23 226

原创 git-hook提交之前检测代码

在用 Robust 热修复的时候,修复完成之后代码里有很多的 @Add 和 @Modify 注解,但是这些内容不应该提交到 git 上面去,提交的时候人工检测又很麻烦,所以在 git commit 之前进行 hook,在提交的时候之前进行检测代码里是否有不能提交的内容在 git 项目根目录下的 .git/hooks/ 下有一堆的 xxx.sample 文件,前面的名字表示会在什么阶段起作用,把 ...

2019-09-21 14:31:09 1965

原创 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 863

原创 Android 热修复调研

SophixAndFix 在 GitHub 上的最后一次提交记录是在三年前了,而且提的很多 issue 也没有人回复,估计是放弃这个方案了,在推 Sophix .Sophix:支持方法级别的修复支持资源的修改,添加补丁包较小傻瓜式接入看了下官网的介绍,然后自己集成了一下他的SDK,模拟了几个问题,依次生成补丁包,修复,走了一遍流程我这里试了三个版本的 4.4、 6.0、 9...

2019-08-08 14:18:38 401

原创 Android 事件传递

getAction() 和 getActionMasked()getAction() 是以前的版本出来的getActionMasked() 是为了多点触控, 现在用的话都选这个就好shouldDelayChildPressedState()自定义容器的时候, 如果不需要滚动, 那么需要重写 shouldDelayChildPressedState() , 并且返回 false , 这个方法...

2019-07-21 20:03:36 320

原创 Android 自定义控件的 measure, layout

Android 自定义控件的 measure, layoutAndroid 自定义 View 一般都要写 测量, 摆放在 onMeasure 里面测量出自己的宽高, 然后父控件会根据自己测量出来的宽高来进行摆放(layout)如果不按照父容器的约束来, 就会出问题重写了 layout 方法, 摆放的很大, 但是父容器那里的尺寸并没有改, 所以其他的 view 就会有重叠<?xml ...

2019-07-10 10:04:13 191

原创 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 142

原创 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 844

原创 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 434

原创 Android 文字绘制和Camera几何变换

文字绘制文字绘制的位置是基于基线(BaseLine)// 0F, 0F 指的是基线的位置, 而不是文字的左上角位置, 基线在文字左下角偏上一点点的位置canvas.drawText(mText, 0F, 0F, mTextPaint)TextView 内容准确定位getTextBoundsmTextPaint.getTextBounds 可以获取到这一行文字的准确坐标, 然后根...

2019-07-02 13:39:21 358

原创 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 347

原创 横向摆放控件,空间不足时右边不动,挤压左边

需求: 横向摆放控件 当数据不多的时候,靠左边显示 当左边控件的数据慢慢变多,就往右边挤 当右边的控件到达最右边的时候,固定右边不动,挤压左边的控件解决方法:这里到了 google 的 FlexboxLayout: com.google.android:flexbox:xxxlayout_flexShrink 属性可以解决这个问题 layout_flexShrink 属性定...

2019-05-14 10:40:23 864

原创 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 8663

原创 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 522

原创 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 238

原创 Android 动态替换 Manifest.xml中的值

根据情况替换 Manifest.xml 中的值android 中有很多个渠道,每个渠道都有 debug 和 release 版本, 如果Manifest.xml 中每个版本有不同的值一般的可以用 manifestPlaceholders = [APP_KEY : '对应的值'] 来替换,在 debug和 release 的时候也可以,但是多渠道的时候可能就会有些问题了解决方式...

2018-08-18 15:37:19 5000

原创 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 1126 1

原创 Java 调用 Kotlin

Java 调用 Kotlin1、kotlin编译后会生成一个 类名 + Kt ,如果不想使用这个名字,可以自己自定义在文件第一行添加注解 @file:JvmName(&quot;名字&quot;)例如 @file:JvmName(&quot;Hello&quot;)2、访问顶层属性var name = &quot;1&quot;通过 文件名Kt 来调用set/get方法String name = JavaClassKt.get..

2018-05-29 14:11:20 4120

原创 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 1328

原创 apt 调试

AndroidStudio 下 apt 调试测试 apt 的时候创建一个 java library,写个类继承 AbstractProcessor之后在 process 中调试注意:在那个模块调试,就在那个模块下的相应任务下右键创建任务注意:在执行任务之前,确保 app 模块下引入了 aptannotationProcessor project(':...

2018-04-07 11:54:01 6118 1

原创 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 1150

原创 Java数据结构--图的的最短路径与拓扑排序

图的最短路径是图中一个点到其他点的最短路径最短路径拓扑排序

2018-02-26 17:19:28 274

原创 Java数据结构--图的遍历与最小生成树

图的遍历图的遍历分为深度优先遍历(相当于树中的前序遍历)和广度优先遍历(类似树中的层级遍历)深度优先遍历广度优先遍历最小生成树一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边。我们把构造连通网的最小代价生成树。称为最小生成树。找连通网的最小生成树,经典的有两种算法,普里姆算法和克鲁斯卡尔算法普里姆算法克鲁斯卡尔算...

2018-02-21 14:27:27 497

原创 AndroidStudio 创建 java-library 引入第三方库 NoClassDefFoundError

在 AndroidStudio 中创建了一个 java-library ,引入第三方库,不管是 jar包 还是在 build.gradle 中添加依赖,在运行的时候 java.lang.NoClassDefFoundError 原因这里没有把这个 jar 包添加到 classpath, 要工具依赖 ,让工具执行引入依赖。不然直接 run as 不帮你配制解决1、在 ...

2018-02-05 09:43:57 4103 3

原创 解决All flavors must now belong to a named flavor dimension.

AndroidStudio升级到3.0之后发现在写productFlavors执行的时候会报错productFlavors { dev { minSdkVersion 21 } prod { minSdkVersion 14 }}报错信息:Error:All flavors must now belong to a n

2018-01-28 17:27:12 326

原创 Android--onTrimMemory与onLowMemory

onTrimMemory与onLowMemory 我们的Application、Acivity、Service、ContentProvider与Fragment都实现了ComponentCallbacks2接口。 所以能够重写 onTrimMemory与onLowMemory函数。OnTrimMemory的参数是一个int数值,代表不同的内存状态: 4.1 当我们的应用程序正在运行时:

2018-01-11 21:40:00 322

原创 Android--SparseArray、ArrayMap

在Android开发时,我们使用的大部分都是Java的api。其中我们经常会用到java中的集合,比如HashMap,使用HashMap非常舒服,但是对于Android这种内存敏感的移动平台,很多时候使用这些java的api并不能达到更好的性能,相反反而更消耗内存,所以针对Android,google也推出了更符合自己的api,比如SparseArray、ArrayMap用来代替HashMap在有

2018-01-11 21:31:26 211

apkpatch-1.0.3

android热修复中的andfix热修复工具,可以使用这个工具生成两个版本的apk(有问题的apk和修复好的apk)的具有差异的文件

2017-09-08

BamboyBlur

Android毛玻璃效果工具类

2017-05-10

FingerprintUtil

个人整理的指纹识别的工具类

2017-05-08

statusbar.zip

Android之沉浸式状态

2017-05-06

httpclient

2017-04-05

hprof-conv.exe

DDMS files not found ,sdk\tools\hprof-conv.exe文件找不到的解决方法 解决方案:下载一个hprof-conv.exe,放到\sdk\tools目录下,然后重启eclipse,问题即可解决

2017-03-25

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

TA关注的人

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