自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 Android Hook 剪切板相关方法

因为SYSTEM_SERVICE_FETCHERS字段是个static字段,所以整个app进程只会有一个且只会执行一次初始化的操作,所以无论我们传入的context是Application的还是Activity,拿到的都是同一个fetcher实例,那么问题只能出在fetcher.getService(ctx)方法里面。但是一些第三方的jar包里面也有在调用的话,我们就无能为力了,而且整个项目的所有调用处都一个一个去加判断的话,就会显得很麻烦,这里用Hook方法完成拦截方法调用+判断。

2023-07-24 20:06:57 477

原创 JNA 官方下载地址

https://repo1.maven.org/maven2/net/java/dev/jna/

2021-01-23 11:53:23 4299

原创 android项目中使用kotlin和java混合编程

1. 先在插件商店安装kotlin插件2. 在想要使用kotlin的module的build.gradle文件根目录里面添加apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'如图所示3. 在项目的build.gradle文件里面添加 , 大功告成ext.kotlin_version="1.3.72" //这里改成你的kotlin版本号classpa...

2020-08-08 11:19:50 3629

原创 谷歌的一个material控件 - chipgroup,一步实现flowlayout

添加依赖 :implementation 'com.google.android.material:material:1.3.0-alpha01'注意!这个控件必须在activity的属性里面指定theme为 :Theme.MaterialComponents 或者它的子类布局:每个chip的布局然后就大功告成了,chipgroup会根据chip对他们排列具体的看 :谷歌文档...

2020-07-02 17:29:42 1830

原创 关于inflate出来的view的margin属性失效问题

在inflate方法的源码可以看到也就是说 , 如果inflate方法中的root参数为null时 , 不会生成layoutparams , 所以margin会失效 , 所以在inflate方法把root参数绑定成你的parent即可

2020-05-17 11:57:40 581

原创 分享一个自定义view-圆形进度条,中间显示进度

public class SportsView extends View { /* 原理是画一大一小圆,小圆填充外部边距颜色,最中间画text */ private int progress = 0; //中间的进度数 private int mCircleWidth = 20; //圆环的宽度 private int mCircleColor = Color.BLUE; //圆环的默认颜色 private...

2020-05-15 20:48:48 284

转载 随手笔记 - 介绍view动画

转载自 :https://www.jianshu.com/p/16e0d4e92bb2

2020-05-11 12:04:03 151

原创 随手笔记 - activity的切换效果

更改activity的切换效果 enterAnim : 启动activity时的动画 exitAnim : 暂停activity时的动画 注意 , overridependingTransition方法必须在startActivity或者finish后面 , 否则不起效果Intent intent = new Intent(this,SecondActivity.class);startActivity(intent);//这是启动的切换效果overridePendingTr...

2020-05-11 11:40:31 176

原创 Android获得app的一些基本信息(包名,图标,版本号之类)

PackageManager pm = getPackageManager(); // 自带的,直接用就是/* * 传入的flag不同,得到的list不一样,例如传入PackageManager.GET_ACTIVITIES可得到activity相关信息, * 具体可查看源码,类型为PackageInfo */List<PackageInfo> packageInfo...

2020-04-09 14:50:53 285

转载 Android常见的内存泄露

转载 :https://www.cicada-shell.com/android-nei-cun-xie-lou/

2019-12-13 19:55:51 189

原创 Android禁止屏幕旋转后创建Activity实例

我们都知道 , 默认的activity是在屏幕旋转后会重新创建activity的 , 那么有没有办法可以不重新创建呢? 有!!!在manifest文件的activity里面指定属性android:configChanges="orientation|screenSize" 就OK了 (其中screenSize选项参数看下面介绍 , API13之后都要加这个参数)当然 , ...

2019-12-03 12:06:23 219

原创 和风天气API接口获取天气数据 android端

1. 在和风天气官网注册账号 , 然后申请一个key , 注意类型一定要是android sdk , 这个key只能在指定包名里面的SDK使用 , 用浏览器会返回错误 !!!2. 下载和风天气的SDKhttps://dev.heweather.com/docs/sdk/android, 然后将SDK导入到你的项目工程里面3. 使用方法 : 获得你的账号的us...

2019-11-27 17:52:46 6988

原创 android studio connection reset by peer 问题的解决方法

出现这种问题有可能是adb的默认端口(5037)被占用 , 无法启用adb-server ,所以只要找到是哪个进程占用了这个端口 , kill 掉即可在cmd中输入命令 : netstat -aon|findstr "5037"发现了这个进程在占用5037端口号 , PID为15044然后输入命令 : tasklist|findstr "15044"找到该进程名字...

2019-11-16 10:46:44 2421

原创 解决AMD处理器 android studio 无法启动模拟器的问题

用这位大佬的方法可以解决大部分问题 :https://blog.csdn.net/ichenwin/article/details/81039816但是因为我用了VMware , 所以把hypervisor给禁用了 , 折腾了一下午都没弄好 , 最好想了好久才想起我之前曾经禁用了它 , 所以再次打开它即可(光是在windows features开启还不够 , 还要确保hyperviso...

2019-11-01 16:43:05 3915

原创 litepal 3.0 配置教程

1. 在官网下载最新的src.jar包2. 在项目中导入jar包3. 注意是在moudul的build.gradle里面添加依赖 , 不是在project里面的build.gradle里面添加 , 当时我就在这里卡了好久....java 就加dependencies { implementation 'org.litepal.android:java:3.0...

2019-10-31 20:15:31 649

原创 解决linux下chrome标题栏乱码问题

1. 准备一个中文字体 : 比如这个 : YaHei Consolas Hybrid 下载链接:https://pan.baidu.com/s/1S3vQcH00iG9U_xR8IMgcig2. 安装该字体3. 打开etc/fonts/conf.avail/49-sansserif.conf , 修改倒数第四行的sans-serif为你的字体名 ,我这里是YaHei\ Consolas\ ...

2019-10-08 12:47:10 372

原创 找出链表中是否存在循环链表以及开始位置

基本思路是 : 设置两个前后指针 , 前指针每次前进2 , 后指针每次前进1 , 如果存在一个环 , 必然会在某个时刻前指针追上后指针 , 如果不存在环 , 则前指针碰到末尾就直接结束了(到这里是检测是否存在一个环) ListNode fast,slow; fast = slow = head; while(fast !=...

2019-09-08 17:24:31 266

原创 Android Studio 超简单的连接第三方模拟器

看见网上好多教程都是同一个人写的 , 错误都一模一样 ,到处复制.........自己摸索了半天才弄好了1. 将你的adb.exe文件路径放到系统变量里面(不放也可以 , 但是每次连接都要手动cd到adb.exe路径下比较麻烦...) 这里因为我用的adb.exe是刷机用的adb , 所以我用这个路径 , 自己的自行替换 右键 "此电脑" - "属性" -...

2019-09-04 19:27:12 1670 1

原创 java 使用Compartator接口实现自定义排序

背景 :Comparator接口可以实现自定义排序,实现Comparator接口时,要重写compare方法:int compare(Object o1, Object o2) 返回一个基本类型的整型如果要按照升序排序,则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)如果要按照降序排序,则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负...

2019-07-01 18:14:57 277

原创 android studio安装教程

1. 去官网下载android studiohttps://developer.android.com/studio2. 如果是windows直接打开exe运行 , linux的话先用命令解压 , 比如说解压到android-studio目录 , 那么在android-stduio/bin/下面有一个studio.sh 运行该脚本即可开始安装 , 下次打开运行也是运行这个脚本下面是图文安...

2019-06-24 22:49:03 656

原创 grub rescue模式下修复grub启动项

主要是双系统下windows升级把grub启动项破坏了, 一开机直接进入grub rescue模式 , 在救援模式下只有很少的命令可以用:(1) set 查看环境变量 , 这里可以查看启动路径和分区(2) ls 查看设备(3) insmod 加载模块(4) root 指定用于启动系统的分区 , 在救援模式下设置grub启动分区(5) prefix 设置grub启动路径具体步...

2019-06-23 19:00:25 3915 1

原创 解决java编译时提示错误 : 找不到或者无法加载主类

情况是这样的 , 我在test4包下面新建了一个Test.java的文件 ,使用命令行运行的时候却提示找不到主类 ...经过知乎大神提示后 , 知道了eclipse的包要在包的上一层目录下运行 , 而且要加上包的名字 , 包和类用.分隔 (例如我的 : test4包下面的Test.java文件 , 运行就应该输入 : java test4.Test ), 而且不能带"....

2019-06-02 18:04:33 1242 2

原创 利用java的gui实现的一个计算器小程序

废话不多说 , 直接贴代码 , 有详细的注释 , 中间不懂的可以在底下留言评论 , 我也是刚学GUI没多久......这个是效果图 :package gui;/* * 导入所需要的包 */import java.awt.*; // 这个是java的gui编程里面一个很重要的包import java.awt.event.*; // 用...

2019-05-27 18:34:40 1281 2

原创 java list转数组

int [] res = null;List<Integer> list = new ArrayList<Integer>();ListNode p = head;ListNode cur = head;while(p != null){ list.add(p.val); p = p.next;}res = list.stream().map...

2019-05-20 20:13:21 228

原创 利用AIDA64查看CPU,GPU,RAM温度,使用率等

1. 打开AIDA64 , 找到左上角的“文件” - “设置”2. 找到 “硬件监视工具” - “OSD” - "屏显项目" ,勾选想要显示的项目,应用即可

2019-05-16 09:25:44 50867 4

原创 正整数n分解成若干个个不同的自然数之和,使得乘积最大

问题分析:要想使得乘积最大,由均值不等式可知,当所有因子相等时,乘积达到最大,但是这里是互不相等,所以推出每个因子尽可能的接近的时候,乘积会达到最大,但是因子也有几个限制1. 因子 > 12. 因子之间互不相等3. 因子之间尽可能靠近所以自然想到从2开始累加到接近n设最后有最大因子为m(比如 13 = (2 + 3 + 4)+ 4), 使得最后一个留下来的数(这里是...

2019-05-12 10:27:56 6532 1

原创 插入排序的优化算法(基于二分查找)

由于插入排序要在前面的已排序的数组中查找一个位置插入,所以可以用二分法优化查找过程,然后后移元素,插入即可public static void insertSort(int [] a){ int N = a.length; for(int i = 1; i < N; i++) // 将第一个元素当做已排序,所有i从1开始 { ...

2019-05-02 17:25:05 639

原创 java使用StdDraw标准绘制图

1. 下载algs4.jar包 :https://dl.bintray.com/algs4/maven/edu/princeton/cs/algs4/1.0.4/2. 在eclipse中导入该jar包,导入方法 : 百度教程

2019-05-02 10:25:55 4405

原创 求连通分量个数

如图所示:要求该图中连通分量个数,该图可以简化为两个节点之间的连线(整数对 p , q )quick-find算法(O(N^2)),也是一般人最容易想到的算法1. 用一个id数组来确定两个节点之间是否存在于相同的连通分量中 , 保证同一个连通分量的所有节点的在id数组中的值全部相同(id数组记录的是p点所在连通分量的标号)2. 先用 find函数 判断p , q是否...

2019-04-30 12:31:12 3863

原创 矩阵连乘求最小连乘次数(动态规划)

方法一:递归 , 时间复杂度为(2^n);1. 设有矩阵A1 , A2 , A3 , A4 , 维度分别为(2 * 3 , 3 * 4, 4 * 5, 5 * 6)2. 设a数组 = {2,3,4,5,6} ; n 为数组长度 5;3. 因为不知道从哪里断开才能达到成乘积之和最小 ,所以只能一个一个尝试设 k 为最佳断开点 , 设置两个标志 start = 0 , end =...

2019-04-21 16:07:59 3433

转载 数组中求最长递增序列 (乱序数组 , O( NlgN ))

转载自 :https://leetcode.com/problems/longest-increasing-subsequence/discuss/74880/JAVA-Easy-Version-To-Understand!!!!!!!! 照着自己的理解翻译了一下方法一:(O(nlgn))1. 用一个长度为n的数组 increasingSequence存储递增序列 , 一...

2019-04-18 21:34:23 669

原创 双调查找(数组先递增后递减)

所谓双调查找 : 就是在一个数组中的所有元素是先递增后递减的,则这个数组被称为双调的。以a数组为例 :{1,2,3,5,8,9,6,4,-1,-9};基本思想:1. 既然是有序的,自然想到的是二分搜索2. 但是与普通的二分搜索不一样,不知道拐点在何处3. 所以大致分为三种情况:① a[mid] 在 左半边但未越过拐点②a[mid] 在右半边越过了拐点③a[mid]刚...

2019-04-18 08:57:39 3339 1

原创 求数组中相差最小的两个数O(N)

基本思想:1. 遍历该数组 ,找出该数组中最小和最大值,则所求的两个整数的差值一定小于等于max - min;2. 从头开始 , 一个一个元素与(max + min) / 2 比较,如果小于,则表示所求的两个整数的差值介于min 到 a[i]之间 ,更新max = a[i] ,如果大于,则表示所求的两个整数的差值介于a[i]到max之间 ,更新min = a[i] ; 如果小于min或者...

2019-04-17 15:57:54 5551 3

原创 求两个有序数组的公共部分

1. 哈希算法public static void commonOfTwoArrs(int [] A,int [] B) { for(int i = 0; i < A.length; i++) common.add(A[i]); for(int i = 0; i < B.length; i++){ if(common.contains(B[i]))...

2019-04-17 15:47:39 1384

原创 WIN10 JDK + JCreator

1. 下载JDK :官网链接2. 下载JCreator :官网链接3. 安装JDK ,一切按照默认一直下一步即可(默认目录在C:\Program Files\Java)效果图:4. 配置环境变量 :右键 “此电脑” --- “属性”单击“高级系统设置”“高级” ---- “环境变量”“新建” 系统变量变量名 :“JAVA_HOME”,...

2019-03-08 19:31:05 2598 1

原创 如何彻底的删除计算机多余的 CD驱动器盘符

1. 下载安装软碟通 : 软碟通2. 以管理员权限打开3.  "选项" -- "配置"4. 将设备数量修改为"无"即可5. 效果图 

2019-02-21 13:36:57 8881 3

原创 最简单的C语言实现大数相乘

前言 : 实现大数相乘比相加要难一点 , 但是仔细分析会发现很多共同之处 分析 : 1. 由数学归纳法会发现用一般的两数相乘方法计算 , 每计算一次都能够确定最终结果的一位数字2. 比如说 : 456 * 123    下面我用草稿描述 , 字丑请见谅 .............3. 第一步我们可以确定个位 , 第二步可以确定十位 , 第三步是百位 .......以此类推 , ...

2019-01-20 10:07:38 4338

原创 C语言实现大数相加

前言 : 所谓大数就是指位数特别大,几百上千位数的这种数字 , 所以这一类的数据不能用简单的int , long 等基本数据类型所表示 . 最好的表达方式就是用字符串 , 然而字符串不能直接像数字一样相加相减 , 所以有了大数相加的算法 基本思想和普通的加法运算没有什么区别 , 只是处理的每一个数据从数字变成了字符 . 所以实现起来也比较简单 以下是(原创)代码 :#in...

2019-01-20 09:43:05 5195

原创 A卡福利 : AMD Fluid Motion Video补帧教程,让你的视频从24帧补到60帧(144)

背景 :AMD Fluid Motion Video是一项AMD研发,将帧率为24FPS【即帧每秒,Frames per Second】或者其他帧率低于60FPS的视频补帧成60帧的技术。1. 准备工具 : 完美解码(Pot player) , BuleskyFrc2. 打开AMD的深红驱动设置 , 依次点击 "视频" - "自定义" - "AMD Fluid Motion Video...

2018-11-17 10:03:33 58329 16

原创 windows 10 安装java , eclipse

1. 在甲骨文官网下载JDK :  https://www.oracle.com/technetwork/java/javase/downloads/index.html 记得同意协议什么的 , 然后选择下载 2. 配置环境变量 : 右键 "此电脑" - "高级系统设置" 变量名自定义 , 变量值填之前安装的java目录 , 点击 "确定" , 记得不要加分号;...

2018-10-22 22:37:14 472 3

空空如也

空空如也

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

TA关注的人

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