- 博客(63)
- 资源 (2)
- 收藏
- 关注
原创 Android图形混合效果与透明度
DST_ATOP:显示源图形与目标图形的交集部分和目标图形剩余部分,源图形非交集部分被舍弃,透明度采用目标图形的透明度;SRC_ATOP:显示源图形与目标图形的交集部分和源图形剩余部分,目标图形非交集部分被舍弃,透明度采用源图形的透明度;PLUS:将源图形和目标图形的颜色值相加,然后进行饱和度处理,透明度采用源图形和目标图形的透明度之和;XOR:显示源图形与目标图形的非交集部分,交集部分被舍弃,透明度采用源图形和目标图形的透明度之和;SRC:显示源图形,目标图形被忽略;DST:显示目标图形,源图形被忽略;
2023-06-05 11:37:41 916
原创 随机算法:梅森旋转,线性同余
线性反馈函数实际上就是这个级的移位寄存器选取“某些位”进行异或后得到的结果,这里的“某些位”的选取很重要,,这样所有的输出对应一个序列,这个序列叫做M序列,是最长线性移位寄存器序列的简称。一个级的移位寄存器产生的序列的最大周期为 2。这个最大周期跟反馈函数有关。-1,算法本身的目的就是达到可以产生2。例如 反馈函数 f(x) = x。
2023-06-05 11:34:21 286
原创 Android窗口Window的创建(悬浮窗)
创建悬浮窗以及基于无障碍服务的窗口关于悬浮窗的创建启动悬浮窗关于前台服务启动服务无障碍窗口知识点参考链接关于悬浮窗的创建首先需要获取WindowManagerWindowManager manager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);为窗口添加参数(大小、位置、类型…)WindowManager.LayoutParams viewParam = new WindowManager.Layou
2022-01-11 20:38:59 4649 1
原创 Android通知栏和服务相关知识
Android通知栏与开启前后台服务执行下载任务索引自定义通知栏关键点后台下载,同时打开前台服务显示进度关键点自定义通知栏关键点在Android8之后,发送通知需要通知渠道,具体要求见官方文档使用自定义通知栏需要RemoteViews,并且RemoteViews内部不支持包含有约束布局的view,支持相对布局、线下布局…具体见官方文档对于自定义通知栏的点击事件,需要PendingIntent和广播(下一篇博客展示)这个部分是用的模拟器运行的,所以因为某些版本和机制的问题图标和style没有
2022-01-09 15:04:24 2147 1
原创 HTTPS与DNS劫持
http是以明文传输的,所以要保证安全就要给明文加密,所以就有了HTTPShttps的加密步骤解析:首先要有一个秘钥去加密传输的内容,把它命名为秘钥X;所以,客户端在传输加密的明文之前要把秘钥X也传给服务器那么问题来了,X也需要加密,不然,黑客也能获取到秘钥X,难道继续给X加密的秘钥继续加密吗,这开始套娃了;所以,解决办法是,在客户端想服务器发出HTTPS请求的时候,服务器发给客户端一个公钥,然后客户端拿到这个公钥,给X加密,然后传给服务器,服务器拿到这个之后,通过本地的私钥解开加密,获取秘钥.
2021-10-13 21:37:15 1363 1
原创 多线程与高并发
目录序线程run和start创建线程的方法sleep、yield、joinThread State锁Synchronized关键字可重入的概念异常发生底层实现volatile**面试一般会问单例的双重锁里面的这个volatile为什么要加上(或者问为什么要双重锁)?**面试问题volatile能代替Synchronized吗?CASReentrantLockCoutDownLatchCycliBarrierPhaserReadWriteLockSemaphoreExchangerLockSurport面试相
2021-05-03 16:00:23 562
原创 Glide与Picasso以及图片压缩
glide和picassoGlide和Picasso都是图片加载框架,用法相似://Glide的用法Glide.with(context).load(url).into(imageView);//Picasso的用法Picasso.with(context).load(url).into(imageView);不同的地方,也是Glide的优点:with()方法里面的参数可以是Context、Activity、Fragment,并且后面两个参数类型可以使这个图片和后面连个参数的生命周期绑定。
2021-04-05 10:50:26 696
原创 Android的SHA1的获取
目录应用场景发布版SHA1的获取开发版SHA1的获取包名的获取应用场景在使用百度地图(之前还有一个API也要用这个)的SDK的时候就要创建应用,而此时,就需要SHA1等数据了发布版SHA1的获取官方文档首先打开终端然后想想自己有没有创建过这个Android应用的密钥库文件。如果没有创建点击next后就会让你输入城市呀,国家呀这些东西,然后随便输入就好了。创建好之后进入下面这一步如果创建了,就输入这个命令首先是保证自己进入了.android这个文件夹下输入下面的命令
2021-03-13 21:53:58 254
原创 Android--Intent
目录Intent定义显示Intent和隐式Intent\标签ActionCategoryDataExtrasIntent定义Intent被译作意图,是一个消息传递对象,使用它可以向其他Android组件请求操作。Intent的基本用途主要包括:启动 Activity、启动服务、传递广播。也就是说他也相当于四大组件的中介。Intent对象可以封装传递下面6种信息:组件名称(ComponentName)动作(Action)种类(Category)数据(Data)附件信息(Extra)标志
2021-02-24 15:27:24 209
原创 Android--Binder机制
目录Binder不用Linux系统的进程间通信原因Linux自带的七种通信方式Binder的优点Binder机制模型流程原理在Android里面的具体实现原理Binder一个进程空间分为用户空间和内核空间。关系如下图:不用Linux系统的进程间通信原因Android是基于Linux的操作系统,Linux自带多种进程通信方式,为什么还要引入Binder?Linux自带的七种通信方式管道(pipe)管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出,
2021-02-24 15:21:54 160
原创 Android--四大组件 (万字详细解读!!!)
四大组件的生命周期目录四大组件的生命周期Activity生命周期:这个结合它的各个方法来看方法间的区别Activity的切换Activity的四种启动模式当按下Home键时,引起的变化内存资源不足,导致低优先级Activity被杀死Service使用场景生命周期通信方式前台服务Service和Thread的区别IntentService进程的优先级BroadcastReceiver作用和地位使用方式静态注册和动态注册静态注册动态注册两者区别与细节BroadcastReceiver的分类无序广播有序广播本地
2021-02-06 18:28:23 2751 4
原创 Android--智能图像识别(基于百度智能云)
目录效果图引言步骤调用相机显示图片到Activity并识别创建百度智能云平台下一步下载官方提供的SDK查看官方文档查看API接口文档(在SDK文档的同一个界面)坑点:没注意提供的代码示例效果图引言效果图是在模拟器上运行的,调用相机的时候是调用的电脑上的相机,所以我选择的是实时截取屏幕,随便选了一个图片,然后就是关于这个智能识别,毕竟是调用的百度的API,所以…注意保密性…百度后台应该是能看到拍的图片的。结果返回的是一个Json字符串我就没有去处理它了,然后朋友帮我处理了一下…处理后的效果步骤
2021-02-02 19:24:16 3727 8
原创 Android--多线程的切换
目录引言Thread+HandlerAsyncTaskInterServiceRxJava什么是RxJava原理介绍基本实现实现原理场景示例线程控制:Scheduler (一)RxJava——变换线程控制:Scheduler (二)应用场景举例引言Android为我们提供了消息循环的机制,我们可以利用这个机制来实现线程间的通信。那么,我们就可以在非UI线程发送消息到UI线程,最终让UI线程来进行UI的操作。对于运算量较大的操作和IO操作或者网络请求,我们需要新开线程来处理这些繁重的工作,以免阻塞UI线
2021-01-29 18:27:30 855 1
原创 Android--支付宝沙箱集成(详细图解)
目录效果图关于官方的Demo进入开发者平台下载他的沙箱版支付宝下载官方给的SDK导入官方给的Demo导入SDK修改APPID、PID、TARGET_IDRSA2_PRIVATE问题也就是这个沙箱的公钥和私钥最后加入这条语句EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);在onCreate()方法里面效果图的代码activity布局文件MainActivity文件有两处改动效果图关于官方的Demo这里我们先跑一个官方给的demo试试进入开发者平台沙箱应用创建一
2021-01-25 18:07:03 5664 13
原创 Android--省市区三级联动(dialog)
目录gson框架效果图定义按钮逻辑文件自定义的dialog样式自定义view类CityPicker数据来源(area.json)自定义view(ScrollerNumberPicker类)省市县的布局文件(city_picker.xml)gson框架implementation 'com.google.code.gson:gson:2.8.6'效果图定义按钮<Button android:id="@+id/button" android:layout_width="120
2021-01-20 17:00:02 499 2
原创 Android--扫一扫(zxing)
目录首先加入依赖添加权限添加控件拿到引用首先加入依赖implementation 'com.github.yuzhiqiang1993:zxing:2.2.5'//扫一扫添加权限<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <
2021-01-20 16:15:15 1197 1
原创 Android--OkHttp的使用
目录简单的get和post请求get请求post请求(带参数)post带token请求简单的get和post请求get请求//设置它的相关参数public final static int CONNECT_TIMEOUT = 60;public final static int READ_TIMEOUT = 100;public final static int WRITE_TIMEOUT = 60;public static final OkHttpClient client = new O
2021-01-20 15:39:36 334
原创 Android--电商首页的分页导航
目录效果图实现方案布局文件RecyclerView的布局文件EntranceAdapter类ModelHomeEntrance类ScreenUtil类CagegoryViewPagerAdapter类逻辑文件(实现)效果图实现方案RecyclerView + ViewPager布局文件将ViewPager和小圆点指示器都包裹在约束布局里面小圆点放在约束布局的线性布局里面<androidx.constraintlayout.widget.ConstraintLayout and
2021-01-20 15:09:25 2975 7
原创 Android轮播图—Banner
目录效果图导入依赖布局逻辑代码效果图导入依赖implementation 'com.youth.banner:banner:1.4.10' //轮播图布局<com.youth.banner.Banner android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="150dp" android:layout_marginStart="15dp"
2021-01-20 14:04:52 2681 2
原创 湖南中医药大学OJ—1190到1199
目录1190: 习题6-2 排序1191: 习题6-3 求整型矩阵对角线元素之和1192: 习题6-4 有序插入1193: 习题6-5 数组元素逆置1194: 习题6-6 杨辉三角1195: 习题6-9 折半查找1196: 习题6-10 字符统计1197: 习题6-12 解密1198: 习题6-13 字符串比较1199: 例题6-1 逆序输出数组元素1190: 习题6-2 排序题目描述从键盘上输入10个整数,按照从小到大的顺序对这10个数排序。采用选择法进行排序。输入输入以空格分隔的10个整数
2020-11-19 11:30:46 765 2
原创 湖南中医药大学OJ—1180到1189
目录1180: 习题5-7 求和1181: 习题5-8 求水仙花数1182: 习题5-9 完数1183: 习题5-10 分数序列求和1184: 习题5-11 求多次落地弹球高度1185: 习题5-12 猴子吃桃问题1186: 习题5-13 迭代法求平方根1187: 习题5-14 牛顿迭代法求方程的根1188: 习题5-15 二分法求方程的根1189: 习题6-1 筛选法求素数1180: 习题5-7 求和题目描述求如下式子的和请将结果定义为double类型。注意求平方,不要用C数学库中提供的函数
2020-11-14 23:15:54 898
原创 湖南中医药大学OJ—1170到1179
目录1170: 例题5-10 求素数1171: 例题5-11 译密码1172: 习题5-3-1 求最大公约数1173: 习题5-3-2 求最大公约数1174: 习题5-3-3 最小公倍数1175: 习题5-3-4 求最小公倍数1176: 习题5-4 字符统计1177: 习题5-5 求和1178: 习题5-6 连续自然数的阶乘求和1179: 习题5-6-1 连续阶乘求和1170: 例题5-10 求素数题目描述求100~200之间的全部素数,输入无输出100~200之间的全部素数,一个素数占一行
2020-11-13 22:18:45 1375
原创 湖南中医药大学OJ—1160到1169
目录1160: 例题5-1-1 连续自然数求和1161: 例题5-1-2 连续自然数求和1162: 例题5-1-3 连续自然数求和1163: 例题5-1-4 连续自然数求和1164: 例题5-1-5 连续自然数求和1165: 例题5-5 continue语句的应用1166: 例题5-6 矩阵输出1167: 例题5-7 求圆周率pi的近似值1168: 例题5-8 Fibonacci数列1169: 例题5-9 判断素数1160: 例题5-1-1 连续自然数求和题目描述求1+2+3+…+100,即求要求
2020-11-10 20:18:23 566
原创 湖南中医药大学OJ—1150到1159
目录1150: 习题4-6 分段函数求值1151: 习题4-8-1 百分制成绩转换为等级1152: 习题4-8-2 百分制成绩转换为等级1153: 习题4-9-1 判断正整数位数1154: 习题4-9-2 求正整数各位上的数字1155: 习题4-9-3 逆序输出正整数各位上数字1156: 习题4-10-1 奖金计算1157: 习题4-10-2 奖金计算1158: 习题4-11 4个整数从小到大输出1159: 习题4-12 求建筑物高度1150: 习题4-6 分段函数求值题目描述有一个函数y=f(x)
2020-11-08 10:34:44 649
原创 湖南中医药大学OJ—1140到1149
目录1140: 例题4-1 一元二次方程求根1141: 例题4-2 比较交换实数值1142:例题4-3 比较交换3个实数值,并按序输出1143: 例题4-4 大写字母转换为小写字母1144: 例题4-5 符号函数1145: 例题4-6 成绩格式转换1146: 例题4-8 判断闰年1147: 例题4-10 运费计算1148: 习题4-4 三个整数求最大值1149: 习题4-5 求平方根1140: 例题4-1 一元二次方程求根题目描述求一元二次方程ax2+bx+c=0的根,三个系数a, b, c由键盘输
2020-11-07 10:23:23 826
原创 湖南中医药大学OJ—1130到1139
目录1130: 习题3-1 计算国民生产总值增长倍数1131: 习题3-2 计算存款利息(1)1132: 习题3-2 计算存款利息(2)1133: 习题3-2 计算存款利息(3)1134: 习题3-2 计算存款利息(4)1135: 习题3-2 计算存款利息(5)1136: 习题3-3 计算贷款还款时间1137: 习题3-6 译密码(1)1138: 习题3-6 译密码(2)1139: 习题3-7 圆相关计算1130: 习题3-1 计算国民生产总值增长倍数题目描述假如我国国民生产总值的年增长率为9%,计
2020-11-07 09:40:37 674 1
原创 湖南中医药大学OJ—1120到1129
1120: 习题2-8 求闰年题目描述输出1900至2000年(包含1900年和2000年)间的所有闰年。输入:无输出:输出所有描述范围内的闰年,每个年份一行。样例输入 Copy无样例输出 Copy1904190819121916192019241928193219361940194419481952195619601964196819721976198019841988199219962000之前的题解里面有提到闰年的判断,这里
2020-11-06 19:48:41 594
原创 湖南中医药大学OJ—1110到1119
目录1110: 例题2-3 判断闰年1111: 例题2-4 简单公式计算1112: 例题2-5 判断素数1113: 习题2-4-2 多数求最大值1114: 习题2-4-3 三个数排序输出1115: 习题2-4-4 连续多数求和1116: 习题2-4-5 判断整除1117: 习题2-4-6 判断素数1118: 习题2-4-7 求最大公约数1119: 习题2-4-8 一元二次方程求根1110: 例题2-3 判断闰年题目描述输入一个2000至2500年间(包含2000年和2500年)的任意年份,判断是否是
2020-11-06 18:26:16 560
原创 湖南中医药大学OJ—1100到1109
目录1100: 例题1-1-1 按要求输出信息(1)1101: 例题1-1-2 按要求输出信息(2)1102: 例题1-2-1 求两个整数之和(1)1103: 例题1-2-2 求两整数数之和(2)1104: 例题1-2-3 求两个整数之和(3)1105: 例题1-3-1 求两个整数中的较大者(1)1106: 例题1-3-2 求两个整数中的较大者(2)1107: 习题1-6 求三个整数中的最大值1108: 例题2-1 连乘计算1109: 例题2-2 选择查找1100: 例题1-1-1 按要求输出信息(1)
2020-11-05 19:58:40 676
原创 二叉树&红黑树
二叉树目录索引二叉树二叉树的提出二叉树的构造与操作二叉树数据的删除红黑树基本原理红黑数的特点数据插入的修复数据删除的修复二叉树的提出对于Java开发中如果使用链表保存数据,在查询一个数据时,它的时间复杂度是O(n)如果数据量比较小,那没什么影响,如果数据量大于30,再用链表就会严重损耗程序的性能,所以只有尽可能的减少检索次数来进行优化,所以就可以使用二叉树来保存数据;二叉树的结构是根节点和叶子节点(左右子树),数据大于根节点,就放在右子树,小于根节点就放在左子树;二叉树的检索有三种,前序遍历、中
2020-10-24 21:42:28 148
原创 力扣组合三连-做题记录
目录索引组合系列链接组合一](https://leetcode-cn.com/problems/combinations/description/)、[组合二](https://leetcode-cn.com/problems/combination-sum-ii/)以及[组合三组合一组合二组合三组合系列链接组合一、组合二以及组合三三题的详细题解链接里面很多,不懂就过去看组合一题目:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。这个题用回溯解决,所以就有了模板,直接
2020-09-13 21:28:19 245
原创 正则表达式
目录索引认识正则表达式正则标记String类对正则表达式的支持认识正则表达式正则表达式主要用于在字符串的验证等方面,简化验证操作,比如下面的程序要验证遗传字符串是否全部由数字组成:public class JavaAPIDemo { public static void main(String[] args) throws Exception { String str = "123" ; if (isNumber(str)) { int num = Integer.parseInt(s
2020-09-10 11:35:55 183 1
原创 尝试了LeetCode
目录感想做了两道题试水第一题:组合(使用简单回溯)题目二:找重复数据感想有一说一,刚打开LeetCode没看懂怎么写代码提交,题解也没看到输入数据,后面细品一波,是这个数据写好了,可以当做一个函数来看,在函数中写代码就行了做了两道题试水第一题:组合(使用简单回溯)class Solution {private: vector<vector<int>> result;//保存所有组合方式 vector<int> path;//只保存一种组合方式
2020-09-08 19:55:56 178
原创 JSTL标签和EL表达式的配合使用
转载博客什么是JSTLJSTL是Java中的一个定制标记库集。(这个标记库集不需要自己编写,可以直接使用)为什么要使用JSTL实现了JSP页面中的代码复用(基于标签库原理,重复率较高的代码块支持复用,提高效率)书写JSP页面时可读性更强(长得很像xml,方便前端查看和参与开发)JSTL的下载:下载地址EL表达式什么是EL表达式全名是Expression Language,常常配合jstl标签库使用,使得JSP页面更直观,写法更简单。EL表达式的格式:用美元符号“ $ ”定界,内容包
2020-08-25 22:02:20 280
原创 Java--基础类库
目录索引StringBuffer类CharSequence接口AutoCloseable接口Runtime类System类Cleaner类对象克隆StringBuffer类面试题:请解释String、StringBuffer、 StringBuilder 的区别?引出StringBuffer就不得不提String和StringBuilder,首先String不能够修改内容所以有StingBuffer和StringBuilder去修改String数据类型的内容, 而StingBuffer和StringB
2020-08-22 18:34:44 238
原创 Java--多线程细节深化
目录索引优雅的停止线程后台守护线程volatile关键字优雅的停止线程线程的启动使用的是Thread类的start()方法,而它还提供了 stop() 方法去停止线程、destroy() 方法去销毁线程、suspend() 方法去挂起线程暂停执行 以及 resume() 方法使挂起线程的恢复但现在都被废除了(因为这些方法可能导致死锁)所以要想去停止线程可以通过flag去控制public class ThreadDemo { public static boolean flag = true ;
2020-08-20 18:17:18 149
原创 Java--线程的同步与死锁
目录索引线程的同步线程的死锁生产者--消费者模型线程的同步当多个线程访问同一资源时,可能会造成资源的不同步,比如:可能由于网络延迟,导致A窗口卖票的时候看到有一张剩余,但其实已经被B窗口给卖出去了,所以此时的资源不同步。由此引出线程的同步处理图中锁的功能可以用synchronized关键字来实现,利用此关键字可以定义同步方法或同步代码块,使此时操作只允许一个线程执行。同步会使程序的整体性能降低class MyThread implements Runnable { private int ti
2020-08-19 17:32:33 360
原创 Java--线程之基操详解
目录线程的命名和取得线程休眠线程中断线程强制运行线程礼让线程优先级线程的命名和取得由于线程的运行状态不可控,所以在程序中要取得线程,就需要给线程命名,来方便取用。关于取名,Thread类中提供有相关方法:构造方法: public Thread( Runnable target, String name);设置名字: public final void setName( String name);。取得名字: public final String getName();。class MyThr
2020-08-18 18:00:22 114
原创 Java--线程入门
目录索引进程与线程多线程的实现Thread类实现多线程Runnable接口实现多线程Callable接口实现多线程Thread和Runnable关系多线程运行状态进程与线程单进程:在同一个时间段内只允许一个程序执行。多进程:在一个时间段内可以同时运行多个程序(对资源进行轮流抢占,程序依次执行),但在同一个时间点,只允许一个程序执行,然后多核的出现就使得可以在同一个时间段上允许执行多个程序。线程:在进程的基础上划分的更小的程序单元,线程依赖于进程的支持,线程的启动速度比进程的快速多。多线程的实现如
2020-08-16 18:48:14 136
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人