![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
飞翔的时光机
这个作者很懒,什么都没留下…
展开
-
Flutter Rive 多状态例子
Flutter Rive 动画例子原创 2022-06-29 19:09:08 · 721 阅读 · 0 评论 -
如何将其他PHP版本添加到MAMP
MAMP只允许显示最新的2个版本的PHP. 可以重命名您不用的文件夹,在/Applications/MAMP/bin/php/php5.4.10_X文件夹中添加"X".现在5.2.17和5.3.20出现在mamp首选项中.完成!原创 2022-03-22 17:43:44 · 782 阅读 · 0 评论 -
Java Web 开发
Java Web 开发通常使用:Spring Boot 来实现Web开发, 其提供了 完整的一套解决方案,但是相对来说 比较复杂登录与资源授权通常是使用这两种: [SpringSecurity 和 Shiro]如果需要支持 前后端分离, 还需要接入 “JWT”SpringSecurity 和 Shiro差别简单来说:SpringSecurity 应用更广泛。 Shiro更简单一点登陆Token 验证: JWT[Jwt生成Token 登陆](https://www.jianshu.com/原创 2022-03-22 14:20:02 · 1104 阅读 · 0 评论 -
SurfaceView 闪屏(黑一下问题)
SurfaceView 闪屏(黑一下问题)使用SurfaceView发现在surfaceCreated和surfaceDestroyed的时候,预览区域会闪烁一下,录屏下可以发现页面会先出现一个半黑的界面。查了下资料,因为SurfaceView的绘画是在setContentView之后的,SurfaceView因为不同于一般的view,它有自己良好的缓冲以及数据存取机制,系统对他有特殊处理。当surfaceview第一次在当前activity上添加的时候,系统会给WindowManager重新排布局,r原创 2021-03-29 17:24:05 · 2169 阅读 · 0 评论 -
TabLayout RecycleView, ViewPager 内部布局
原创 2020-12-09 18:08:42 · 134 阅读 · 0 评论 -
Android CoordinatorLayout 协调布局
Android CoordinatorLayout 协调布局本篇主要介绍一下四个布局控件,他们之间相互配合可以创造出流畅的动画,实现各种复杂的效果CoordinatorLayoutAppBarLayoutCollapsingToolbarLayoutToolBarCoordinatorLayoutCoordinatorLayout 是功能强大的FrameLayout。CoordinatorLayout主要有两个用途用作应用的顶层布局管理器,作为界面其他控件的父容器作为与一个或多个子原创 2020-09-27 15:39:49 · 1047 阅读 · 0 评论 -
Android 中的GradientDrawwable
GradientDrawwableGradientDrawable在Android中便是shape标签的代码实现,利用GradientDrawable也可以创建出各种形状。<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:co原创 2020-09-11 17:00:09 · 202 阅读 · 0 评论 -
Android Matrix理解
Android Matrix理解在 Android 开发中,矩阵是一个功能强大并且应用广泛的神器,例如:用它来制作动画效果、改变图片大小、给图片加各类滤镜等。对于矩阵,Android 官方 SDK 为我们提供了一个强大的类 Matrix (还有 ColorMatrix )是一直困扰着我的问题.Matrix 的结构Matrix 它代表一个 3 X 3 的矩阵,满足如下数学定理设原始矩阵为 M,平移为 T ,旋转为 R ,单位矩阵为 I ,最终结果为 M’矩阵乘法不满足交换律,即 AB ≠ B原创 2020-09-10 11:52:10 · 567 阅读 · 0 评论 -
Android 使用 Kotlin 协程例子
Android 使用 Kotlin 协程例子协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码,协程是我们在 Android 上进行异步编程的推荐解决方案轻量:您可以在单个线程上运行多个协程,因为协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作内存泄露更少:使用结构化并发机制在一个作用域内执行多个操作。内置取消支持:取消功能会自动通过正在运行的协程层次结构传播4.Jetpack 集成:许多 Jetpack 库都包含提供全面协程支持原创 2020-08-20 18:42:21 · 636 阅读 · 0 评论 -
配置Grade 依赖和搜索Maven库
配置Grade 依赖1. 搜索库版本打开Android Studio 右键选择 module setting点击 Library dependency 里的配置 要依赖的库。 但是这个搜索功能由于墙的关系,搜索很慢,很难得到结果。使用Google maven 仓库搜索: https://maven.google.com/解决AndroidStudio中gradle添加依赖包很慢的问题gradle会根据 build.gradle文件中的 repositories 获取到下载资源源原创 2020-08-20 17:34:14 · 704 阅读 · 0 评论 -
编码5分钟,命名2小时, Java命名规范参考
简洁清爽的代码风格应该是大多数工程师所期待的。在工作中笔者常常因为起名字而纠结,夸张点可以说是编程 5 分钟,命名两小时类型 约束 例项目名 全部小写,多个单词用中划线分隔‘-’ spring-cloud包名 全部小写 com.alibaba.fastjson类名 单词首字母大写 Feature, ParserConfig,DefaultFieldDeserializer变量名 首字母小写,多个单词组成时,除首个单词,其他单词首字母都要大写 password, userName常量名 全部大写,原创 2020-08-06 11:57:00 · 197 阅读 · 0 评论 -
总结: Kotlin 委托简单介绍
Kotlin 委托类委托委托模式实现继承的一个很好的替代方式。委托模式使得我们可以用组合来替代继承,更进一步它还使我们可以模拟mixin 类(Flutter)这是官网的一个委托例子interface Base { fun print() fun printB()}class BaseImpl(val x: Int) : Base { override fun print() { print(x) } override fun printB() { println(x) }原创 2020-07-18 15:24:11 · 306 阅读 · 0 评论 -
总结:Activity和Fragment之间的数据传递
数据的传递是APP应用开发中一个很常见和关键的工作,这边主要是梳理了一些常见的数据传递方式Activity 和Activity之间传递数据Intent intent = new Intent(this,MainListActivity.class);// 可直接调用putXxx()方法 或 创建Bundle对象,完成参数传递 intent.putString(TAG,"data"); intent.putExtra(TAG,0);startActivity(intent);//如果需要页面的原创 2020-07-18 15:22:27 · 860 阅读 · 0 评论 -
入门- Flutter 连接IOS真机
Flutter 连接IOS真机环境配置安装 homebrew (如果已经安装了brew,跳过此步骤)。homebrew 源地址比较慢,可以配置镜像:cd "$(brew --repo)" && git remote set-url origin https://git.coding.net/homebrew/homebrew.gitcd $home && brew update打开终端并运行如下这些命令:brew updatebrew instal原创 2020-06-19 11:33:25 · 1326 阅读 · 0 评论 -
Flutter 图片选择器性能优化实践
Flutter 图片选择器性能优化##:使用Flutter实现了一个图片选择器控件,集成到Hilight里面。 自测发现在一些低端机上会有卡顿现象,需要优化下才能提测git项目地址ui截图优化项目:1. 局部刷新最先想到的是这个,每次数据变动只刷新对应变动的UI,避免直接用 setState 全屏刷新。具体是实现是:尽可能使用const。 使用const的 对象只会实例一次把 build方法抽取出 独立控件,构造函数 尽量设置成const.使用ValueNotifier 来实现局部刷新。原创 2020-06-19 11:30:34 · 442 阅读 · 1 评论 -
Flutter 图片选择器和性能测试
实现Channel传递的方式跟常见的插件开发类似,就是把 相册 MediaStore的 api能力开放给Flutter,本来是想自己实现一个,翻阅了github,发现已经有类似开源的项目 photo_manager.下载代码大概看了下,基本可以满足要求,而且以后还能根据要求继续扩展。其中,安卓的图片加载就是使用Glide来获取字节流。实现简单图库功能来测试性能。简单的图库Demo git地址由于之前对FLutter性能测试还不是很熟悉,刚好借助这机会学习了下。由于Flutter debug包是使原创 2020-06-19 10:57:19 · 552 阅读 · 0 评论 -
入门起步:安装Flutter
起步:安装Flutter2020-04-25 全新安装Flutter,这里记录下参考链接:FlutterChina1.下载SDK官网直接下载SDK包,下载地址解压的目录,最好是 根目录下2.配置Path添加flutter相关工具到path中://进入根目录cd ~//创建配置文件touch .bash_profile //打开配置open .bash_profile //配置立即生效source .bash_profile //查看是否配置成功flutter原创 2020-06-19 10:42:22 · 226 阅读 · 0 评论 -
入门- 相机- ARCore
相机Part21. ARCore CameraARCore 原理ARCore 是 Google 的增强现实体验构建平台。ARCore 使用三个主要功能将虚拟内容与通过手机摄像头看到的现实世界整合:运动跟踪 让手机可以理解和跟踪它相对于现实世界的位置。环境理解 让手机可以检测各类表面(例如地面、咖啡桌或墙壁等水平、垂直和倾斜表面)的大小和位置。光照估计 让手机可以估测环境当前的光照条件。2. ARCoreCamera2.1 检测设备是否支持public abstract class M原创 2020-06-19 10:36:23 · 686 阅读 · 1 评论 -
入门- 音视频基础知识
一、基本概念协议协议一般有 HTTP 、RTSP、RTMP 等,我们就最常见的就是 HTTP 网络协议,而 RTSP 和 RTMP 一般用于直播流或支持带有控制信令的常见,比如远程监控。视频封装协议视频封装协议指的是我们常见的 MP4 、AVI 、RMVB 、MKV、TS、FLV、MOV等常见后缀格式,它们所表示的就是多媒体的封装协议,就是在传输过程中把音频和视频打包都一起的封装,所以播放前是需要把这部分内容解开,提取出对应音频编码和视频编码。音频编码音频编码指的是音频数据的编码方式,常见的如原创 2020-06-19 10:33:13 · 261 阅读 · 0 评论 -
相机基础原理
相机基础概念Camera是系统对外提供控制手机摄像头的类Camera1 谷歌出的第一代相机API,布局 SurfaceViewCamera2 Android 5.0对拍照API进行了全新的设计,功能会更精细,支持RAW照片输出,甚至允许程序调整相机的对焦模式、曝光模式、快门等,但是跟camera1 不兼容。布局: TextureView详细参考:Camera1与Camera2区别Camera2完全解析SurfaceView, GlSurfaceView, TextureView 的区别S原创 2020-06-19 10:32:15 · 322 阅读 · 1 评论 -
APP组件化简单总结
背景三国演义里开篇就说:天下大势,分久必合,合久必分。这话套在软件开发上,也特别贴切。我记得我刚入门时做Android应用程序开发,刚开始都是采用中心化管理的思想,将相同的资源集中进行管理,但是做着做着,发现集中管理的资源太多了,多人开发时牵一发而动全身,进而又要对原本的项目进行拆分,演变出模块化开发,以及我这里要讲的Android组件化实践。现状一种是项目组件化开发,一种是单一工程开发模式。1.对工程的任意修改调试都要编译整个工程,效率十分低下;2.不利于多人团队协同开发;3.无法做到功能复用原创 2020-06-19 10:25:13 · 816 阅读 · 0 评论 -
大纲- 自学一个语言
怎样自学一个语言下载PDF跟着学,并写重读一遍实现APP书要看两遍:第一遍, 总的过下第二天, 细看和实现原创 2020-06-19 10:14:27 · 132 阅读 · 0 评论 -
几种常用的编码格式输出整理
编码:Unicode 编码中文 => \u4e2d\u6587URL编码: 红色 => %E7%BA%A2%E8%89%B2UTF编码中文 => 中文Base64 加密解密: 中文 => JXU0RTJEJXU2NTg3原创 2020-06-12 14:17:54 · 2163 阅读 · 0 评论 -
Flutter 状态管理 实践记录
Flutter 状态管理 实践记录1. 背景Flutter里面最重要的应该就是:状态管理 刚开始做的一个问题,StatefulWidget的状态应该被谁管理?Widget本身?父Widget?还是其他对象?以下是管理状态的最常见的方法:Widget管理自己的状态。父Widget管理子Widget状态。混合管理(父Widget和子Widget都管理状态)。举个例子:比如 CheckBox 里面的数据到底是给谁管理比较方便官方的原则是:如果状态是用户数据,如复选框的选中状态、滑块的位置,原创 2020-06-04 10:44:23 · 233 阅读 · 0 评论 -
Flutter 局部刷新/状态管理 全面总结
Flutter 局部刷新/ 状态管理在Flutter中,如果我们想要更新页面中的某个widget的状态的话,一般会使用setState方法重走build方法来刷新。//Flutter是描述性的(declarative), UI反映状态.UI = f(state)当页面布局复杂的时候,这样肯定是不行的。 这边梳理了下几种常见的方式,做个记录,方便将来选型总体分为两类:第一类,Dart 和 Flutter 内置支持1. setState.Flutter里面最重要的方式 setState,规模原创 2020-05-29 20:11:07 · 7403 阅读 · 0 评论 -
recycleVIew item 点击效果 问题:
背景Android SDK自带有 很多 布局,drawable, String ,style 等资源。在开发中有意识的使用可以加快开发速度,而且可以减少资源占用。复用 drawable资源recycleVIew 默认的分割线资源有这些:可以通过Android.R.drawable获取。。divider_horizontal_bright.9.pngdivider_horizontal_bright_opaque.9.pngdivider_horizontal_dark.9.pngdivider原创 2020-05-18 11:35:25 · 353 阅读 · 0 评论 -
好用的安卓模块化间通信- 接口方式调用
github : https://github.com/gybin02/ProtocolJet Protocol 安卓模块间 通信库业务模块间通常通过定义/实现java的interface完成业务逻辑,必然导致模块间存在代码层面的依赖。也导致编译期的工程依赖。事实上,业务模块间仅仅是逻辑上存在依赖,完全没必要产生实际的工程依赖。该组件提供了一种解藕模块间显式依赖的能力。方案对比定义请求...原创 2020-04-04 16:42:16 · 533 阅读 · 0 评论 -
算法面试 (主要分两大类 排序和查找)
算法面试 (主要分两大类 排序和查找)排序https://www.cnblogs.com/guoyaohua/p/8600214.html插入排序从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到下一位置;重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;将新元素插入到该位置后;重...原创 2020-04-04 16:09:33 · 219 阅读 · 0 评论 -
2020高级安卓面试总结- 安卓基础篇
Viewed绘制过程,自定义ViewView绘制主要分为三步。分别是onMersure 计算View的尺寸大小,可能会触发多次MeasureSpecUNSPECIFIED 父容器不对子布局有任何限制,要多大给多大(如: scrollview,listView)EXACTLY 父容器已经测量出子布局大小AT_MOST 父窗口限定了一个最大值给子布局。onLayout ...原创 2020-04-04 16:07:38 · 1381 阅读 · 0 评论 -
PermissionKit 权限申请库 -- 一句代码帮你申请动态权限
PermissionKit 权限申请库用来快速方便实现 6.0+ 的权限授权,GitHub地址:https://github.com/gybin02/PermissionKit这个库可以节省不少代码量和时间流程检查是否拥有权限-> 有权限 -> 回调权限申请成功没有权限是否需要弹窗请求-> 不需要 -> 是否是被设置为永不提醒需要弹窗请求,监听是否点击确认...原创 2020-04-04 15:58:56 · 389 阅读 · 0 评论 -
MPChart的 X轴和legend 间隔设置
最近在使用MpChart完成图表功能,遇到几个问题,在这记录下:设置 X轴和Legend的间隔问题找了很久没找到方法,只能去看源码。最后找到一个属性可以实现》 //设置legend 和X轴之间间距 chart.extraBottomOffset = 10f PieChart 饼状图无数据的时候空页面问题当饼状图无数据的时候,整个图表是空白的,不友好: ...原创 2020-03-20 09:17:10 · 1505 阅读 · 0 评论 -
Kotlin Array的toList和asList有何不同?
Kotlin Array类提供asList(),toList()和toMutableList()方法.前两个方法都返回一个List,并在Kotlin reference中描述如下:> asList()返回包装原始Array的List.> toList()返回一个List,其中包含[原始Array]的所有元素.这些方法似乎可以互换.这两种方法在实践中有何不同?最佳答案...原创 2020-01-10 10:11:17 · 2214 阅读 · 0 评论