- 博客(14)
- 收藏
- 关注
原创 广州图书馆
写篇博客记录一下广州图书馆吧!今年的某一天第一次去广州图书馆,里面是真的宽广、干净又安静,图书很多,我想要的书几乎都有,可以说,你平时在广州购书中心想要买的书,在图书馆绝大多数都有,所以,为什么要花钱去买呢!而且图书馆里的书很多都是很新的,我以前天真的以为图书馆的书都是很旧的,我错了!广州图书馆里面环境真的很好,坐位超级多的,生怕你没地方做似的,可能是疫情期间,进馆需要预约,所以我看到坐位那么多,还没几个人做,不知道没疫情时没人数限制那时是不是坐位暴满的场面,就恨自己以前为什么不早点去图书馆逛逛,这样就
2021-02-03 15:47:16 840 4
原创 Camera预览旋转设置
实现效果如下:点击4个按钮分别实现4个角度的旋转。目标版本设置为21,这样不需要动态申请权限。在清单文件申请CAMERA权限布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andro
2021-02-25 14:34:15 1764
原创 AES加密
Java版本import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import java.util.Base64;public class Aes { public static String encrypt(String rawData) { try { return Base64.getEncoder().encodeToString(getCipher(Cipher
2021-02-24 17:03:27 398
原创 Kotlin编程技巧
假设有一个集合,List或Map,我只需要取集合里面的第1个元素,普通代码实现如下: val list = mutableListOf("一", "二", "三") val map = mutableMapOf("一" to "1", "二" to "2") val result01 = if (list.isNotEmpty()) list[0] else "" val result02 = if (map.isNotEmpty()) {
2021-02-23 18:51:11 599
原创 Linux下安装Tomcat
首先要安装好JDK,安装教程:https://blog.csdn.net/android_cai_niao/article/details/113858663安装Tomcat,参照JDK的安装即可。环境变量设置#javaexport JAVA_HOME=/usr/local/jdk1.8.0_261export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PAT..
2021-02-19 17:12:20 170 1
原创 Linux安装Openfire、Spark
首先要安装好JDK,安装教程:https://blog.csdn.net/android_cai_niao/article/details/113858663安装Spark,参照JDK的安装即可。启动Spark假设Spark安装在:/usr/local/Spark目录下,则cmd先进入到该目录下:cd /usr/local/Spark然后有以下几种方式可以启动Spark,输入命令:Spark.Spark./Sparkbash Sparksh Spark快捷方式:..
2021-02-19 15:23:16 510
原创 Linux安装JDK
1、设置虚拟机网络VM VirtualBox中安装好Linux系统,如Ubuntu,网络设置选桥接网卡,如下:如果“界面名称”处显示为“未指定”,下拉时没有显示可用的网卡,则需要先安装网络桥接,安装步骤如下:浏览VirtualBox安装的目录,找到VirtualBox\drivers\network\netlwf\VBoxNetLwf.inf安装完成后,这里会多出一个东西:然后,重启VirtualBox,网络设置中就可以选择桥接网卡了,如下:启动虚拟机,查看虚拟机ip,输入ifcon
2021-02-19 11:03:11 727
原创 轻轻松松理解Base64
前言在开发中,Base64编码会经常使用到,平时也就是使用,没有去真正了解过Base64的原理,今天开发的时候,使用key、value的方式保存Base64编码之后的字符串,文件中的形式为key=value,但是Base64字符串本身就有等于号(=),所以,我担心这会不会出问题啊?我使用的是Properties类来保存key/value的,我发现Properties会自动对保存的字符串中出现的等于号做转义,示例如下:weOcndflNzFLAyseO/JcBA\=\==bjWJ6o9guMCPxAjg
2021-02-09 17:28:22 2882
原创 Android屏幕密度的深刻理解
Android中有一个类:DisplayMetrics,官方文档在此:https://developer.android.google.cn/reference/android/util/DisplayMetrics?hl=enDisplayMetrics类描述有关显示器的一般信息的结构,例如其大小,密度和字体缩放。DisplayMetrics实例对象的获取方式:context.getResources().getDisplayMetrics();属性并不多,对于屏幕密度官方描述不够详细,所以这里记录
2021-02-04 19:25:39 8607 1
原创 AndroidManifest.xml中的package和build.gradle中的applicationId的区别
package用于指定自动生成的文件的包名,而applicationId用于指定应用的进程名称,即应用的唯一标识符,package可以和applicationId不一样,但一般情况都是一样的。当我们要改变一个应用的进程名称时,直接修改applicationId即可,其他任何都方都不需要改动。而如果你改package的话,就需要小心了,因为很有可能会出问题,示例如下:1、我们创建一个全新的Android项目,创建时指定包名为:a.a.aaa,然后再创建一个工具类,如下:import a.a.aaa.R
2021-02-02 21:09:45 5231 1
原创 Java中的常量编译
今天在查看自己之前写的代码时,突然发现有点不对劲,代码如下:if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { // TODO}这里只复制了关键代码,我的问题是:Build.VERSION_CODES.Q这个常量代表Android的版本Android Q,也就是Android 10(API level 29),这个变量是在API 29才出来的呀,为什么我的程序跑到低于API 29的手机上时并没有挂异常呢?官方文档声明如下:没错啊
2021-02-02 18:55:56 694
原创 Android App调试类型设置
在Android项目中可以写JNI,也就是可以写C的代码,C里面的代码也可以使用断点调试,AndroidStudio支持4种调试模式:自动检测仅Java(包含Kotlin)仅Native(即C)、Java + Native当我们点击调试运行时,默认使用的是自动检测,即如果没有C代表,则使用仅Java的模式,如果有C代码,则使用Java + Native的模式,即使我们没有在C中打断点,只在Java代码中打了断点,它也会使用双模式来运行调试,今天我就发现我调式模式运行不起来,很是奇怪,后来稳约记
2021-02-02 17:36:01 1814
原创 shape图形中的stroke和solid中的细节
通过shape可以创建一个图形,比如圆形、四方形,定义一个圆形如下:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <stroke android:color="@color/transparent_white" android:width="20dp"/
2021-02-02 11:55:26 4007 2
sokit-1.3-win32-chs(中文版)
2023-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人