自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Janking's Blog

在触摸里奔跑。在黑夜里舞蹈。

  • 博客(47)
  • 资源 (2)
  • 收藏
  • 关注

原创 深入讨论kotlin中的object初始化时机,到底是饿汉还是懒汉?

很多博客说kotlin的object对象声明是饿汉式的单例https://kaixue.io/kotlin-basic-2/但官方说是延迟初始化于是我自己来尝试一下,测试文件为Test.kt,包名是cn.janking.myandroid.hub1、简单测试直接运行程序,看输出发现在第一行执行完之后才执行Test的初始化代码块但是有的同学就要问题:这也不能确定没有加载Test 的类是吧?所以来看第二步2、看类加载器加两个断点分别放在Test类使用的前后,看看Test类

2021-01-21 11:19:22 3465 12

原创 Type ‘TypeVariable(T)‘ has no method ‘getValue(Nothing?, KProperty<*>)‘ and thus it cannot serve....

解决办法:import androidx.compose.runtime.*

2020-11-17 11:11:58 2099 11

原创 正确使用微信小程序组件库,解决报错Component is not found in path

本人node小白,在开发微信小程序的时候想偷懒使用一个组件库,可是一直报这个错误Component is not found in path "@vant/weapp/dist/image/index"太焦虑了,找了好久总结出正确的使用步骤,如果也不会的小伙伴按照下列步骤做就不会出问题啦!正确使用步骤以小程序组件库 https://github.com/youzan/vant-weapp 为例在小程序项目根目录打开命令行,输入npm i @vant/weapp -S --productio

2020-06-11 18:09:54 12151 4

原创 可能是目前最好的博客策略(长期、稳定、多平台发布)

概述利用GitHub仓库长期存放博客及图片,其他平台一键复制即可进行发布!使用的工具或资源TyporaPicGoGitHubjsDelivr设置GitHub在GitHub中去申请一个token,只要授予repo权限就好了复制保存(因为token只能复制一次,后续就看不到了)并且单独开一个仓库用来存储博客和图片参考策略:本人直接使用的是GitHubPage的仓库(用户名.github.io)用年份作为一级目录,直接存储博客md文件,image作为二级目录,存储每年写的博客

2020-06-02 14:34:05 1197

原创 教你快速打出左角括号、右角括号「」(直角括号)

概述在b乎上是不是看到人人一个「」括号,感觉很高大上呢?虽然这个括号不至于是阳春白雪,但是个人认为还是很优雅好看比如在博客或回答中介绍步骤的操作:首先你需要打开【我的电脑】,然后点击【计算机】 …首先你需要打开(我的电脑),然后点击(计算机) …首先你需要打开《我的电脑》,然后点击《计算机》 …首先你需要打开“我的电脑”,然后点击“计算机” …首先你需要打开「我的电脑」,然后点击「计算机」 …是不是立马就感觉有内味了?基本方法以搜狗输入法为例随便敲点什么,在搜狗输入法候选框弹出来

2020-06-02 14:04:15 62936 5

原创 恢复AndroidStudio「Add File to Git」对话框

背景AS默认新建文件后会弹出一个「Add File to Git」的对话框,想让它不再提示,于是就点了一个「Remenber, dont’t ask again」,问题是后来手抖点到了「Cancel」,以后添加文件都不会加到暂存区了,需要手动Add,那该 怎么办呢?解决办法一:使用快捷键Ctrl + Alt + A手动快速Add File,不过该快捷键跟QQ的截图快捷键有冲突办法二:修改设置Version Control -> Confimation中有个「When files are

2020-05-28 15:28:10 3106

原创 如何调用友盟API进行消息推送以及遇到的坑

因为不同业务的需求不同,这里只是简单DEMO代码import hashlibimport jsonimport time# 计算md5的函数def md5(s): return hashlib.new("md5", s.encode("utf8")).hexdigest()# 消息描述description = '老黄历'# 要推送的消息title = '今日运势'message = '宜上分;忌打码'# 过期时间expireTime = '2020-05-28 1

2020-05-27 16:58:04 1396

原创 干货总结!从源码分析点击事件、触摸事件、enabled、clickable的关系

直接来总结附上本人总结的表格(已用代码验证)enabledclickableonTouchListener是否会被调用onTouchListener#onTouch返回值onClickListener是否会被调用dispatchTouchEvent返回值truetrue是true否truetruetrue是false是truetrue...

2020-04-12 18:16:19 720

原创 【100%有效】解决AndroidStudio 控制台编译输出中文乱码,亲测解决!

背景在AndroidStudio中新建了一个Java Module,但是点击 Run ‘app’之后,Build Output 控制台输出的中文都是乱码,都是问号一样的字符google了很多方法,要么就是文不对题,要么就是各种抄,没有真正测试过!File Encodings 改为UTF-8?没用!build.gradle 添加如下代码?没用!这是解决System.out.print输...

2020-03-10 13:23:56 31938 60

原创 Kotlin中List、Array、传统数组、可变长参数的相互转换

区别首先得分清楚它们的对应关系,kotlin中没有传统的数组(int[]),一切皆是对象所以kotlin中只有List,Array和varargs(可变长参数)三种转换Array转varargs(可变长参数) fun a(){ val array : Array<String> = arrayOf("hello","world") //转...

2020-02-26 16:23:05 8514 1

原创 AndroidStudio/Idea 的 Amend commit和Sign-off commit 是什么意思?

如上图,直接做实验验证Sign-off commit提交创建一个新的测试类来进行提交,添加一个成员变量结果可以发现,就是在commit的信息后面加了一行签名,仅此而已Amend commit提交再次添加一个成员变量,进行提交结果似乎什么也没有发生,但是,打开修改记录会发现,该次的修改包含了上次的修改,替代了上次的提交记录总结Sign-off commit和Ame...

2020-02-22 17:49:00 8203 2

原创 个人开发者实现实现充值和提现功能

因为支付宝和微信API都不开放给个人,基于监听手机通知和广播的操作实在费神费力不讨好,于是就用手动确认代替自动到账方案如下 充值时用户扫完页面显示的二维码后,点击确定前端提供充值的userId,当然还需要Cookie认证,防止cookie不一致,还要提供充值的金额(闲钱币,换算:100闲钱币 = 1RMB),然后调用/money服务器会查找数据库中该id的用户,然后发送邮件给管理员,管...

2020-02-20 19:36:24 6217 1

原创 CentOS升级或安装安装JDK 8

准备工作首先,更新包:yum update检查服务器上是否已安装旧版本的Java:java -version如果有旧版本的Java则移除:yum remove java-1.6.0-openjdkyum remove java-1.7.0-openjdk下载安装JDK前往Oracle Java下载页面,根据你的系统架构找到合适的版本。比如我的系统是Centos 6 x86,...

2020-02-20 19:33:40 582

原创 在电脑上修改apk、重新签名apk

总共分为两步修改apk使用bandizip 等软件直接打开apk,进行需要的修改,然后把META-INF文件夹中的xxx.RSA、xxx.SF和xxx.MF都删掉或者解压apk到一个文件夹中进行修改并按照上述操作删除文件后,然后压缩成zip格式,压缩完成后把压缩文件后缀改为apk重新打包apk执行命令(需要配置好java环境,windows也可以直接执行)jarsigner -ve...

2020-02-20 19:21:27 7665

原创 使用阿里云邮件推送服务发送验证码

介绍其实邮件推送就比较简单了,其实可以使用自己的邮件账号在代码中使用SMTP、POP3或者IMAP登陆,其实本来也是打算这么干的,因为很多邮件推送服务也是要收费的,但是呢~~阿里云(又是阿里云)有个活动 放这个图着实有点打广告的嫌疑,但是站在个人角度确实挺优惠因为使用大企业已经成熟的邮件推送服务,稳定性肯定不用担心,而且听说遇到问题还可以咨询技术顾问,今天我就收到了阿里云客服的电话问...

2019-05-16 21:40:39 7358 1

原创 使用阿里云短信推送服务发送验证码

前言最近课程项目做一个网站,需要实现注册、忘记密码等功能的推送验证码的功能而且根据相关法律法规,用户也需要手机号认证…(反正很多网站都是这么说的) 介绍本来想弄一个免费的短信服务商,http://www.mob.com/product/sms这家就挺不错的,支持还挺全,有IOSAndroidUnity3dCocos2dflutterapicloud而且都是免费的!但是...

2019-05-16 21:34:18 1541 3

原创 Git添加多个SSH密钥连接远程库

文章目录生成RSA密钥对添加公钥gitee添加公钥github添加公钥启用私钥!首先来说一下网上的办法(配置config文件)另一种方法最简单的办法测试连通性查看所有已添加的密钥生成RSA密钥对输入下列命令生成gitee的密钥 $ ssh-keygen -t rsa -C "[email protected]"Generating public/private rsa key pair....

2019-05-05 14:19:25 2110

原创 Hexo+NexT搭建博客笔记

文章目录前言安装HEXO安装主题基本配置网站图标网站脚注版权声明代码块分享访问次数顶部阅读进度条加载动画搜索功能添加RSS订阅添加置顶博客显示最近博客点击爱心效果创建js文件修改_layout.swig添加文章字数统计搜索功能Algolia_searchNote的使用配置风格使用方法文本居中的引用自定义文章摘要主题颜色及大小定制添加自己喜欢的颜色主题颜色链接颜色顶部条颜色字体大小文章标题大小和颜色...

2019-03-24 22:01:29 2522

原创 linux学习笔记(一)| CentOS的安装与网络配置

文章目录下载Linux镜像安装虚拟机基本配置登陆用户设置NAT设置IP激活网卡验证网络思考下载Linux镜像我这里使用的是CentOS(跟鸟哥的Linux私房菜相配合)而且是Minimal版本:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso也可以选择阿里巴巴的镜像:htt...

2019-03-24 21:26:16 334

原创 关于我

最新博客请查看https://blog.janking.cn

2019-01-19 23:16:59 594

原创 联想小新700安装PCIE(NVME)固态硬盘

文章目录选择硬盘拆机安装识别后续测速完成选择硬盘想了半天,还是不把淘宝链接发出来吧我选择的型号是三星P961我装PCIE硬盘的原因是为了装黑苹果,但是听说三星P981是不能被黑苹果识别的,所以就没买(其实是买不起)包装很简陋拆机拆之前确认一下是不是自己的电脑嗯,xiaoxin700-15isk,没毛病!怎么拆机呢,把所有背面的螺丝都卸下就好了!安装看一下电脑背板的...

2018-12-22 03:26:03 36486 23

原创 超详细!联想小新700黑苹果双系统完整教程(2)

文章目录准备文件注入显卡驱动设置开机选择菜单解决外接显示器问题最后欣赏一下前篇:https://blog.csdn.net/jankingmeaning/article/details/85183308这次来讨论黑苹果简单的优化问题!准备文件Disk Genius破解版链接:https://pan.baidu.com/s/1k-A9MfZ7Gghrb54YT8b7UA提取码:3a...

2018-12-22 03:25:08 13293 8

原创 超详细!联想小新700黑苹果双系统完整教程(1)

文章目录准备文件写入系统镜像警告修改EFI分区显示EFI分区操作修改EFI分区操作安装选项开始安装二次安装参考链接本教程图片特别多!即使您不是小新700的用户,也可以切身感受到装黑苹果的过程!准备文件MacOS 10.13.6镜像文件链接:https://pan.baidu.com/s/1SdgOuX2yk8UVkbZ5VtheZA提取码:26mh小新700EFI链接:...

2018-12-22 02:02:45 32007 33

原创 Android手机应用开发(十一) | Retrofit2 + RxJava2 + OkHttp + Restful应用

注意!是Retrofit2+ RxJava2,而不是Retrofit2+ RxJava!实验目的理解Restful接口学会使用Retrofit2复习使用RxJava学会使用OkHttp效果添加依赖implementation 'com.android.support:cardview-v7:28.+'implementation 'com.android.support...

2018-12-18 22:04:28 1080

转载 windows10系统修改c盘user文件夹下的计算机名称

原文链接: https://www.zhihu.com/question/51241293/answer/125148050方法一: 新建新账户,并做账户数据同步与转移 【推荐】方法二: 重命名帐户名,修改注册表等相关信息 【不推荐】Part 1:解决中文路径报错的极简方法有些时候,C:\Users\路径有中文的话,很多软件搞不好因为这个问题都会莫名其妙的报错,尤其是那些以python和R语...

2018-12-09 17:28:22 16405 14

原创 Android手机应用开发(十) | HttpURLConnection的使用以及解析JSON数据

AndroidAPIBitmapJSONRxJavaRecyclerViewHandle实验目的学会使用HttpURLConnection请求访问Web服务学习Android线程机制,学会线程更新UI学会解析JSON数据学习CardView布局技术效果添加依赖//json解析类implementation 'com.squareup.retrofit2:...

2018-12-09 15:23:20 1925 2

原创 Android手机应用开发实战(一) | 展示王者荣耀英雄信息的APP

使用说明导航栏(SmartTabLayout)工具栏(ToolBar)英雄列表(RecyclerView)英雄数据库(HeroSQLiteHelper)增加英雄选取图片选取语音选择职业选择生存能力等值保存结果更新数据库删除英雄保存结果更新数据库英雄显示获取传递过来的英雄人物音效播放背景海报图片的变暗处理属性条(DiscreteSeekBar)的设置属性条(DiscreteSeekBar)的滑动监听事件圆形技能图标不同技能的显示

2018-12-07 19:23:23 4458 5

原创 MD5算法的Java实现

一、算法原理概述MD5 即Message-Digest Algorithm 5 (信息-摘要算法5)MD4 (1990)、MD5(1992, RFC 1321) 由Ron Rivest发明,是广泛 使用的Hash 算法,用于确保信息传输的完整性和一致性。MD5 使用little-endian(小端模式),输入任意不定长度信息,以 512-bit 进行分组,生成四个32-bit 数据,最后联...

2018-12-03 20:19:31 25633 15

原创 Android手机应用开发(九) | RxJava(RxAndroid)的简单使用

实验目的学会使用MediaPlayer学习RxJava,使用RxJava更新UI学会使用Service进行后台工作学会使用Service与Activity进行通信效果RxJava简介GitHub地址:ReactiveX团队RxJavaRxAndroidRxJava是主体,其实还有RxAndroid、RxGo、RxPY、RxSwift等适配这里使用的是RxAndro...

2018-12-03 20:16:23 1365

原创 DES算法的Java实现(ECB模式)

文章目录一、算法原理概述加密过程初始置换IP迭代TFeistel轮函数子秘钥生成逆置换IP-1解密过程二、总体结构三、模块分解PKCS5填充处理明文字符串转二进制IP置换Feistel轮函数子密钥生成十六次迭代四、数据结构五、运行结果六、源代码七、参考资料一、算法原理概述参考自老师的PPT加密过程初始置换IP迭代TFeistel轮函数子秘钥生成逆置换IP-1解密过程...

2018-12-01 21:54:23 8373 3

原创 Android手机应用开发(八) | 制作简单音乐播放器

实验目的学会使用MediaPlayer学会简单的多线程编程,使用Handler更新UI学会使用Service进行后台工作学会使用Service与Activity进行通信效果预览布局进度条的布局如何实现让进度条占满当前时间和全部时间中间的部分呢?如果使用match_parent,右边的全部时间又显示不了如果使用wrap_content,又不能填充满如果自定义dp值...

2018-11-27 17:23:22 5427 4

原创 Android手机应用开发(七) | 数据存储(下)

AndroidSQLiteBitmapListViewContentProvider获取通讯录获取图片实验目的学习SQLite数据库的使用。学习ContentProvider的使用。复习Android界面编程。这次大概是做一个有登录、注册、评论、点赞等功能的小型APP效果如下:(图片比较大)登录注册页面的切换两个按钮用RadioButton就可以实现了...

2018-11-14 01:08:53 1577 1

原创 Android手机应用开发(六) | 数据存储(上)

实验目的学习SharedPreference的基本使用。学习Android中常见的文件操作方法。复习Android界面编程。SharedPreference的使用它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/&amp;amp;amp;lt;package name&amp;amp;amp;gt;/share...

2018-11-14 01:07:25 987

原创 Android手机应用开发(五) | AppWidget 使用

实验目的复习 Broadcast 编程基础。复习动态注册 Broadcast 和静态注册 Broadcast 。掌握 AppWidget 编程基础。先上效果图创建一个AppWidgetFile -&amp;amp;amp;gt; New -&amp;amp;amp;gt; Widget -&amp;amp;amp;gt; AppWidget自定义命名,我命名为MyWidget就会多出三个文件my_widget_info.xml这是小部件...

2018-10-30 22:48:40 955

原创 Android手机应用开发(四) | Broadcast使用和Notification、EventBus编程基础

实验目的掌握 Broadcast 编程基础。掌握动态注册 Broadcast 和静态注册 Broadcast。掌握Notification 编程基础。掌握 EventBus 编程基础。Broadcast使用BroadcastReceiver(广播接收器),属于 Android 四大组件之一注册的方式分为两种:静态注册、动态注册静态注册1.注册广播创建一个java类St...

2018-10-18 22:28:45 997

原创 Android手机应用开发(三) | Intent、Bundle的使用以及RecyclerView、ListView的应用

实验目的:复习事件处理。学习Intent、Bundle在Activity跳转中的应用。学习RecyclerView、ListView以及各类适配器的用法。学习FloatingActionBar的用法。去掉标题栏现在来讨论去掉标题栏的问题打开文件res/values/styles.xml,添加&amp;amp;lt;style name=&amp;quot;NoTitle&amp;quot; parent=&amp;quot;Theme.App...

2018-10-16 00:48:45 4197

原创 Android手机应用开发(二) | 基础的事件处理

实验目的:了解Android编程基础。熟悉Button、RadioButton、EditText等基本控件,能够处理这些控件的基本事件。学会弹出对话框,并定制对话框中的内容,能对确定和取消按钮的事件做处理。1.首先要知道在哪里添加事件代码2.还需要分析一下这个java文件的结构在OnCreate方法里面创建了一个savedInstanceState,还把它的View...

2018-10-02 15:50:40 1773

原创 Android手机应用开发(一) | 基本的UI界面设计

创建一个文本框 TextView首先要清楚布局文件在哪里用Android模式查看项目结构,在layout里面存放着app的所有布局,默认第一个页面就是activity_main.xml那么就可以直接在这里面添加一些列界面元素了&amp;amp;amp;amp;amp;amp;lt;TextView android:id=&amp;amp;amp;amp;amp;quot;@+id/text&amp;amp;amp;amp;amp;quot; //表示它的id

2018-09-29 23:08:46 33427 1

原创 关于配置Golang语言环境中的一些问题以及配置yum源的方法

关于配置Go语言环境中的一些问题坚持不做无用的、重复的、混字数的博客,所以主要谈及安装使用过程中遇到的问题具体安装参考博客:https://pmlpml.github.io/ServiceComputingOnCloud/ex-install-go一、Go版本过低开始没有使用官方的命令sudo yum install golang安装go,而是通过民间的一些tar.gz包妄想一步登天(...

2018-09-27 17:21:11 2231

原创 AndroidStudio环境搭建笔记 | 常见问题解决办法

Android开发环境搭建主要是根据老师给的“开发环境配置.pdf”进行操作,其中遇到了几个问题1、刚开始进去的时候有个gradle sync的错误,然后看了下项目文件夹下的文件gradle-wrapper.properties,发现#Sun Sep 09 13:57:36 CST 2018distributionBase=GRADLE_USER_HOMEdistributionPat...

2018-09-20 16:24:45 791

UWP开发之网络访问及API的获取---天气预报和查询历史上的今天

现代操作系统应用开发之UWP开发 ------ API的获取以及C#中Json的解析(天气预报的获取和历史上的今天查询) 做这个小程序的时候,看了好多网上的Json解析的方法,主要流行的是使用Newtonsoft.Json类库来实现, 我也下载了并照着做,但是出一些奇怪的报错并不知道怎么解决,然后看了一个Bob Tabor大叔的一节视频,发现讲的简单易懂,实现起来也非常简单

2018-05-02

中山大学数字电路实验时钟设计大作业dsn文件

使用Proteus实现具有分、秒计时的计数器,计数结果要求在7段数码管(7SEG-MPX4-CC-RED)上显示,并检查结果 在Proteus设计上给计时器添加调整当前时间功能,即添加进入调整计时模式(MOD)按键和分/秒计数循环加一(ADJ)按键。 使用Proteus实现具有年、月、日、时、分、秒计时的计时器,计时结果要求显示在7段数码管上,要求年、月、日、时、分、秒均可调节。

2017-12-21

空空如也

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

TA关注的人

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