文章 16
浏览 11957
博客推荐

博客推荐

C指针详解(经典,非常详细) JNI部分讲解 奇奇怪怪的排序算法 material库 0.1+0.2 不等于 0.3 浮点数问题

git release版本以及tag

git release版本以及tag

在完成发版之前的所有改动之后,修改版本号,并commit一个[release] 信息 然后进行release tag操作 编辑并提交tag(注意此时还在本地 git tag -a 版本号 -m '版本信息' 给过去的commit 打 tag git tag -a tag名称 commit 值 -m '信息' 通过命令同步上去 git push origin --tags(全部推送 git push origin tag名称(推送指定tag 如果突然发现有严重bug,可以删除tag(注意此时也是删除的本地 git tag -d 版本号 删除远程的tag git push origin:refs/tags/v6.3.2-71 可以使用tag来代替具体commit记录 git checkout tag名称 git checkout -b new分支名称 tag名称 git pull --t tag名称 这些都可以到对应tag 在git仓库中的此处查看tag记录 这里可以选择创建release版本,方便后续管理和公示版本 选择这里可以查看两个tag之间的commit记录

一些推荐

一些推荐

书籍 算法图解 数据结构,算法入门书籍 (labuladong)算法小抄 基础算法学习 软件 TranslucentTB:一款任务栏管理的软件 RocketDock:仿mac的额外任务栏 uTools:强大的插件软件 网址 编程导航 Glide中文文档 Git镜像库 可视化算法和数据结构 y总算法学习网站 newOj算法题库 安卓Svg文件转VectorDrawable Ubuntu临时分享代码 Maven Central icon库 icon库2 logo库 样机展示 在线解密cmd5 测试发出的请求 请求测试 字节码查看工具 一些小东西 暴力解压(好像没什么用) 宇宙最强播放器 Potplayer + LAVFilters + madVR 壁纸1 壁纸2

Kotlin协程

Kotlin协程

Kotlin协程 协程 协程的挂起和恢复 阻塞:点98号技师,98号正在忙,就只有等着98号 挂起:点98号技师,98号正在忙,让前台记下来,就可以看点FBI电影 常规的函数操作:invoke(call)和return 协程新增了suspend和resume suspend:也称为挂起或者暂停,用于暂停执行当前协程,并保存所有局部变量 resume:用于让已暂停的协程从其暂停的地方继续执行 协程的调度器 所有的协程都必须在调度器中运行,即使他们在主线程运行也是如此 Dispatchers.MainAndroid是的主线程,用来处理UI交互和一些轻量级的任务 调用suspend函数、调用UI函数、更新LiveData Dispatchers.IO:非主线程,专为磁盘和网络IO进行了优化 数据库、文件读写、网络处理 Dispatchers.Default:非主线程,专为CPU密集型任务进行了优化 数组排序、JSON数据解析、处理差异判断 如果是在使用retrofit的话,使用的suspend函数,会自动把函数放在IO线程中 CoroutineScope 任务泄漏 当某个协程任务丟失,无法追....

图床建立FOR阿里云OSS

图床建立FOR阿里云OSS

图床建立FOR阿里云OSS 购买阿里云OSS 首先去阿里云官网注册一个账号,这个很简单,点击下面链接小白式注册就行。 阿里云,在里面注册一个账号 登录之后,点击上面title的产品-对象存储OSS 按照这个购买,时间自己选 搞定前面这几步之后,就等于说我们在阿里云上面拥有自己的云存储空间了,下面我们进行简单的配置说明。 阿里云OSS配置 我这个是已经用了一段时间的了 首先创建一个Bucket 这里的名字自己创建(之后会用到) 地点选近一点可能合理一点(没有什么大的影响) !!!这里的读写权限一定要选公共读 进入Bucket 记住这个外网访问地址 用户配置 然后把鼠标悬停在网页右上角的头像上 min 名字自取 填写完之后这步很关键,可以看到会在页面上告知你一个accessKeyId和accessKeySercret,但是坑的地方是这个授权key的值只有在创建的这个页面才能看到,之后就看不到了,所以这里一定要进行复制或者保存这两个值。可以看到页面上也提供了对这两个值的复制功能。(在这里建议把这两个值进行保存) 然后给他添加权限 现在我们差不多已经配置好了 域名配置 这....

军训助理申请材料

军训助理申请材料

该文章已经加密。

Android项目依赖进行管理

Android项目依赖进行管理

一、使用Groovy ext扩展函数来管理 在项目目录下新建config.gradle文件 ext { android = [ compileSdkVersion: 29, buildToolsVersion: "29", minSdkVersion : 17, targetSdkVersion : 26, versionCode : 102, versionName : "1.0.2" ] version = [ appcompatVersion : "1.1.0", coreKtxVersion : "1.2.0", supportLibraryVersion : "28.0.0", androidTestVersion : "3.0.1", junitVersion : "4.12", glideVersion : "4.11.0", okhttpVersion : "3.11.0", retrofitVersion : "2.3.0", constraintLayoutVersion: "1.1.3", gsonVersion : "2.7", rxjavaVersion : ....

JNI for CMake的正确用法(网上教程都太坑了)

JNI for CMake的正确用法(网上教程都太坑了)

记一下JNI的搭建 第一步 安装NDK CMake 在Setting中的Appearance&Behavior/System Settings/Android SDK/SDK Tools中安装NDK``CMake 第二步 配置文件 切换到Project视图 在main目录下新建jni文件 新建main.cpp文件 在app目录下新建CMakeLists.txt文件 # 指定cmake最小版本 cmake_minimum_required(VERSION 3.4.1) add_library( # 库的名称 kitJNI ​ # 将库设置成共享库 SHARED ​ # 设置源码的路径 src/main/jni/main.cpp) # 可以指定第二个 add_library( # 库的名称 kitJNI_2 ​ # 将库设置成共享库 SHARED ​ # 设置源码的路径 src/main/jni/main2.cpp) find_library( #这里是使用NDK自带的库 log-lib log ) ​ target_link_libraries( kitJNI ${log-li....

常用颜色xml

常用颜色xml

<color name="white">#FFFFFF</color> <color name="black">#FF000000</color> <color name="overlay_dark_10">#1A000000</color> <color name="overlay_dark_20">#33000000</color> <color name="overlay_dark_30">#4D000000</color> <color name="overlay_dark_40">#66000000</color> <color name="overlay_dark_50">#80000000</color> <color name="overlay_dark_60">#99000000</color> <color name="overlay_dark_70">#B3000....

Android Studio开发小技巧

Android Studio开发小技巧

Android Studio配置 Log颜色 设置-编译器-颜色和字体-Android Logcat 取消勾选(继承的属性/Inherit values from) 然后就可以设置log的颜色 注释的颜色 设置-编译器-颜色和字体-Java 直接点击下方的代码,然后自动跳转到相应的item 自定义模板(如注释模板) 设置-编译器-活动模板 新建一个自己的模板组 新建一个动态模板 /** * @copyright : $copyright$ * @createTime : $createTime$ * @author : $user$ * @class : $class$ **/ @为参数,$中间变量$ data()为日期,time()为当前时间,user()为电脑用户名 右边可以设置参数的值 跳过即生成的时候不用遍历一遍 也可以查看自带的模板,注意作用范围 编辑头注释 File and Code Templates File Header 与上同理 自动导包 auto import/自动导入 将勾选勾上 注意使用后请查看具体导包是否导错了 代码提示(补全) Code Completi....

JetPack

JetPack

Lifecycle Lifecycle中Activity和Fragment都已经实现了LifecycleOwner接口,在Presenter层中创建传入owner,也可以传入lifecycle class MyPresenter(owner:LifecycleOwnter){ //在初始化的时候创建Obvserver init{ owner.lifecycle.addObserver(MyViewLifeImpl) } //使用一个内部类单独管理生命周期 private val viewLifeImpl by lazy { ViewLifeImpl() } inner class MyViewLifeImpl:LifecycleEventObserver{ //被动通知View层变化 override fun onStateChanged( source: LifecycleOwner, event: Lifecycle.Event) { when(event){ Lifecycle.Event.ON_START ->{ println("监听开启") } Lifecycle.E....

算法学习,立一个Flag

算法学习,立一个Flag

跟随算法小抄学习(2021年4月22日

Glide学习

Glide学习

Glide中文文档 https://muyangmin.github.io/glide-docs-cn/ 基本使用 加载 Glide .with(context) .load(url) .into(imageView); 取消加载 Glide .with(context) .clear(imageView); 占位符 占位符(Placeholder) 请求正在进行,图片没有请求完的时候展示 在error,或者资源为Null的时候,如果没有设置其他两个占位符,则继续展示 使用资源替换 Glide .with(context) .load(url) .placeholder(R.drawable.t) .into(imageView); 或者 使用颜色转换 Glide .with(context) .load(url) .placeholder(new ColorDrawable(Color.BLACK)) .into(imageView); 错误符(Error) 在请求永久性失败时展示,同样,在不设置fallback占位符时,且资源为null的时候继续展示 Glide .with....

Retrofit中使用Rxjava2的zip操作符进行多线程请求

Retrofit中使用Rxjava2的zip操作符进行多线程请求

基本思路 使用subscribeOn(Schedulers.io());在线程中获取多个Observable,再使用.zip操作同步到(UI)主线程中,其中关于BiFunction中,返回的数据使用新建一个AllBean(找解决办法ing) 代码区 WApi public interface WApi { @Headers("token:a337xZZFXIn7SqD1") @GET("dog") Observable<DogBean> getDogJson(); @Headers("token:a337xZZFXIn7SqD1") @GET("qinghua") Observable<QingHuaBean> getQinghuaJson(); } RetrofitManager public class RetrofitManager { private static RetrofitManager sInstance = new RetrofitManager(); private WApi mRetrofit; public static Retrof....

Idea 由toString模板方法改写为toJson

Idea 由toString模板方法改写为toJson

ALt+Insert设置模板 final java.lang.StringBuilder sb = new java.lang.StringBuilder("{"); #set ($i = 0) #foreach ($member in $members)#if ($i == 0) sb.append("##### #else sb.append(",#### #end#if ($member.string || $member.date) \"$member.name\":\"") #else \"$member.name\":") #end#if ($member.primitiveArray || $member.objectArray) .append(java.util.Arrays.toString($member.name)); #elseif ($member.string || $member.date) .append($member.accessor).append('\"'); #else .append($member.accessor); #end#set....

今天是博客搭建的第一天,发个小文章纪念一下

今天是博客搭建的第一天,发个小文章纪念一下

今天是博客搭建的第一天,发个小文章纪念一下,一开始是使用的wordpress,后来发现那个东西是php写的过于折磨人,就换了一个开源项目的博客网站。

充实的一天