- 博客(47)
- 资源 (3)
- 收藏
- 关注
原创 java动态代理浅析
每次使用动态代理都会先查一下怎么用,这次想通过一个demo加深一下印象,所以有了这篇文章。在梳理过程中,我的总结如下:· 被动态代理的对象必须实现接口· 动态代理能调用的方法都是被代理对象的实现接口方法各位看官觉得有问题可以在评论区留言创建接口类这里我们创建了如下两个接口类public interface IBeProxyMod1 { void showLog1(); void showLog2(int code);}public interface IBeProxyMo
2021-05-25 17:24:46
167
原创 java中的基本反射回顾
java中的基本反射回顾想了解Hook技术反射永远是绕不过去的拦路虎,所以打算复习一下简单的java反射,仅以此文作为复习和熟悉markdown的语法。本文主要会涉及的反射实例如下反射类的私有属性反射类的私有方法反射类的私有构造方法反射内部类的私有属性反射内部类的私有方法首先准备一个被反射的类下面这个类包含了我们所有要反射的方法和属性public class ReflectTest { private String pStr = "普通类的私有属性"; public
2021-05-13 18:21:56
177
原创 MAC使用APKTool反编译apk修改版本号后重新打包
一、APKTool简介APKTool是GOOGLE提供的APK编译工具,能够反编译及回编译apk,同时安装反编译系统apk所需要的framework-res框架,清理上次反编译文件夹等功能。需要java支持二、APKTool安装1.安装APKTool需要两个文件,分别是apktool和apktool.jarapktool官方下载地址apktool.jar下载地址apptool官方下载地址可能由于网络原因下载失败,不过没关系其本质就是一个Unix可执行文件,我们可以自己创建一个控制台
2020-12-02 11:33:43
1521
原创 一个java反射的简单实例
被反射的类Studentpackage com.xiaoxiao9575.reflectdemo;import android.util.Log;import androidx.annotation.NonNull;/** * author: xiaoxiao9575 * email: xiaoxiao9575@126.com * csdn: https://blog.csdn.net/weixin_40998254 * github: https://github.com/
2020-06-03 10:40:49
620
原创 android实时高斯模糊
以前自己写过一个高斯模糊的工具类,是把bitmap进行处理,最近要用结果找不到了,写起来有麻烦,还好现在有相关开源框架,特此记录一下。框架地址使用方法Adding to projectAdd dependencies in yourbuild.gradle: dependencies { implementation 'c...
2020-03-20 16:14:06
2035
原创 Android如何正确保存一张图片到相册中
Android开发中我们经常会遇到在做生成海报并保存到相册中,用户在微信从相册选择图片分享类似这样的逻辑。那么如何正确保存一个Bitmap或流文件到本地相册呢?直接上正确的代码(后面也附了注意事项)/** * 保存图片 * @param mContext * @param bean */ public void savePic(Conte...
2019-12-17 11:12:00
1733
2
原创 android部分机型TimeoutException问题解决方案总结
android部分机型TimeoutException问题解决方案总结java.util.concurrent.TimeoutException这个问题涉及到OPPO的很多机型,华为的部分机型和少量的其他机型,导致这个异常的原因很多GC过程中CPU休眠、IO负载高、FinalizerDaemon线程优先级低等多种原因,反正就是没办法从根源解决。目前网上给出的解决方案有三种,下面我们一一列举。...
2019-12-11 18:14:57
2066
2
原创 Android通过广播获取其他应用安装,更新,卸载状态。
在我们在应用中推广其他应用或者需要监听广告推广apk安装状态时很有可能会用到获取应用安装状态的需求,那么如何实现呢?如下:1.写一个广播继承BroadcastReceiverpublic class PackageReceiver extends BroadcastReceiver { @Override public void onReceive(Context co...
2019-11-20 18:35:40
2536
1
原创 viewPager中Fragment生命周期踩坑
众所周知ViewPager会预加载,由于viewPager中预加载的fragment会完整的走一遍显示的生命周期,甚至setUserVisibleHint(boolean isVisibleToUser)这个方法也会走一遍,导致我们无法正确判断是否显示当前的Fragment,预加载的Fragment出现各种意想不到的问题(例如:WebView无法正常显示,用户看到才进行的逻辑提前执行等)。解决...
2019-11-20 18:13:44
504
原创 1024程序员节快乐!
csdn在程序员日发博客好像会给一个勋章,为了勋章特来水一篇博客。有三个陌生大老虎带着自己的孩子小老虎要过河,只有一条船,其中三个大老虎和一个小老虎会开船,船上包括包含开船的司机只能有两个老虎,且小老虎如果没有自己的妈妈保护会被其它大老虎吃掉,但大老虎不吃大老虎,小老虎不吃小老虎,问怎么才能让所有老虎安全过河?...
2019-10-24 15:02:20
641
转载 Android的Touch事件分发机制
最近看了一篇博客,通俗易懂,特别转载一下,希望广大作者能写出更好的技术博客。首先是原文链接:http://www.cnblogs.com/net168/前言 Android中关于触摸事件的分发传递是一个很值得研究的东西。曾不见你引入了一个ListView的滑动功能,ListView就不听你手指的指唤来滚动了;也不知道为啥Button设置了onClick和onTouch,其中谁会先响应...
2019-10-24 14:47:08
326
原创 Android8.0和8.1中使用service的坑
在最近的项目的中某项功能需要在项目启动的时候开启服务,由于从8.0系统开始google已经不允许我们启动后台服务了,所以所有的服务必须是前台的,而且创建通知栏的规则也进行了调整,channelid变成了必要的参数,于是我们一步一步的按照8.0的要求来,通知按照最新规则创建了,在服务oncreate(),onStartCommond()都调用了显示通知的方法,但是...在部分手机中还是会抛异常,这个...
2019-08-16 16:41:30
2391
2
原创 Only fullscreen activities can request orientation异常解决
最近由于要接入一个三方的jar将项目的compileSdkVersion和targetSdkVersion版本升级到了28(原来是26),测试人员在测试时发现android8.0.0版本的手机会莫名crash,crash的原因就是Only fullscreen activities can request orientation。在我项目的代码中由于用到了滑动返回,为了更好的效果在manife...
2019-08-16 16:03:43
261
原创 Android通过java代码模拟用户点击和长按
直接上代码,注释我写的很详细 /** * 模拟点击,限定View,无论坐标传什么View都会响应点击事件 * @param view 要点击的View * @param x x方向像素 * @param y y方向像素 * @param delayTime 按下和抬起时间差,用于区分点击和长按,不同定制系统可能...
2019-04-30 10:38:40
1509
2
原创 android如何获取第二天某个时间的时间戳
小知识点,不废话直接上代码 /** * 第二天早晨8点的毫秒时间戳 * @return */ private Long getMillisNextEarlyMorning() { Calendar cal = Calendar.getInstance(); //日期加1 cal.add(Calenda...
2019-04-16 10:26:31
2150
原创 Android与H5相互接口调用及Android端接口整理
近几年随着HTML5的功能越来越强大,H5页面的性能虽然稍差,单其灵活性很高,更新页面成本比原生小很多,一个页面可以被android和ios同时使用开发成本也比较低,所以移动端的开发已经不是单单的原生开发了,于是乎这就避免不了会进行Android和H5的交互。一、H5调用android接口。js 中调用Android的方法 //H5中调用Android的方法 f...
2019-04-11 15:40:33
5968
原创 android锁屏显示
首先简单说一下实现的思路,在MainActivity中启动一个服务,服务中注册锁屏广播监听,监听到锁屏状态改变启动LockScreenActivity作为锁屏页面,实现如下:首先在MainActivity的布局中写一个SwitchCompat用于开关锁屏。<?xml version="1.0" encoding="utf-8"?><RelativeLayout xml...
2019-04-04 10:39:39
4960
3
原创 JS接口通过完整路径跳转Activity
我们在给H5页面开接口时经常会遇到页面跳转的接口,而有的页面是不需要传递参数的,类似下面的代码每次都要写一个总感觉有些麻烦。 /** * 打开某某页面 */ @JavascriptInterface public void openDemoActivity() { mContext.startActivity(new Intent(...
2019-04-02 10:46:11
572
原创 android改变RecyclerView的滑动惯性
最近拿到一个需求,把列表的滑动速度变慢,让用户一点一点滑动,增加广告曝光时间,由于我们的列表用RecyclerView实现,所以做了滑动惯性的修改,由于很冷门,遂记录一下。 /** * 改变Recycler的滑动速度 * @param recyclerView * @param velocity //滑动速度默认是8000dp */...
2019-03-20 17:02:44
5494
6
原创 Mac通过终端把视频转为高质量gif动图
一、环境准备1.打开终端。2.没有安装过brew的先安装。 brew.sh/index_zh-cn.html3.没有安装过ffmpeg的先安装。 brew install ffmpeg二、使用方法1.打开终端。2.进入视频所在文件夹。 cd Documents/(根据你的实际情况填写)3.通过命令将视频转为gif。 ffmpeg -ss 00:0...
2019-01-19 12:20:08
2882
2
原创 DragLayout的使用方法
DragLayout中的子view可以实现任意拖动,不影响本身的点击事件,其继承自RelativeLayout,所以所有的RelativeLayout的属性DragLayout都适用。用DragLayout可以轻易实现下面的效果:开源项目的github地址DragLayout一、接入方法: 1,在app的build.gradle添加allprojects { reposit...
2019-01-16 19:55:34
1164
原创 Android工程依赖和依赖包依赖冲突解决办法
例如我们需要引用compile com.jph.takephoto:takephoto_library:4.0.3结果由于引用包的glide版本和我们本身工程的glide版本不一致,导致我们自身的glide被覆盖,如何能不覆盖呢,如下compile('com.jph.takephoto:takephoto_library:4.0.3') { exclude group: '...
2018-12-17 15:59:11
1475
原创 用IDEA进行Java后台开发(四)
在上一篇用IDEA进行Java后台开发(三)中通过C3P0和dbUtils已经实现了mySql的连接和简单的数据查询,本篇主要学习一下DBUtils的QueryRunner实现数据库增删改查。首先感谢一下https://blog.csdn.net/a911711054/article/details/77719685这篇博客的作者,写的真的很详细,万分感谢!下面以上一篇的user表为操作表...
2018-11-28 20:46:27
2461
3
原创 用IDEA进行Java后台开发(三)
在上一篇用IDEA进行Java后台开发(二)中我们已经可以成功的调用我们所写的接口,并且做了一些简单的逻辑处理,由于后台开发离不开数据,所以这篇将进行Servlet于MySQL数据库链接和简单的调用。1.导包这里我们选择c3p0和dbutils进行数据库链接,所以导入如下包这里附上所需jar包下载地址2.在src根目录下创建c3p0-config.xml文件,进行数据库配置...
2018-11-27 11:52:27
5182
2
原创 用IDEA进行Java后台开发(二)
这篇博客接上一篇,用IDEA进行Java后台开发(一)上一篇我们已经将工程创建完成了,下面我们将创建一个Servlet,然后本地启动tomcat后调用接口,返回helloWorld,过程如下:1.在src目录下创建servlet目录并创建DemoServlet继承HttpServletpublic class DemoServlet extends HttpServlet { ...
2018-11-26 12:03:22
7933
9
原创 用IDEA进行Java后台开发(一)
想尝试着进行java后台开发,发现能找到的完整工程教程很多都是用eclipse开发的,于是照着搭了一套开发环境,也简单的写了一个测试代码,由于好几年没有使用eclipse了,快捷键实在用的费劲,遂找到了IDEA这个开发工具,和AndroidStudio很多快捷键都是一样的,用起来很方便,下面开始切入正题:1.首先File->New->Project创建工程2.依照图片创建工...
2018-11-22 20:31:43
16151
6
原创 Linux下MySql密码忘了怎么办?
1.首先编辑/etc/my.cnf文件vim /etc/my.cnf在文件中加入一行配置skip-grant-tables例如加到这个位置# read_rnd_buffer_size = 2M datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockskip-grant-tables然后保存退出2.重启mysql服务s...
2018-11-22 10:14:31
2372
2
原创 关于自定义View的drawText字体测量
当我们在Canvas上drawText的时候会发现和所写的文字大小和我们给Paint所设置的不一样,导致我们无法精准的对齐高度,下面我们来看一下问题出在了哪里。首先上图中文英文首先getFontMetrics()我们可以获得文字的实际占用位置的各个高度基线(以500xp的文字为例),各个属性不解释,直接看图就能看出来。Paint.FontMetrics fontMetrics ...
2018-11-13 14:56:08
572
原创 LINUX 创建swap空间
1.检查swap文件是否存在,返回空则不存在swapon -s2.查看文件系统,检查空间是否足够创建swapdf -hal3.创建一个swap目录mkdir /swap4.创建并允许swap文件dd if=/dev/zero of=/swap/swapfile bs=1024 count=40960005.格式化swap文件mkswap -f /swap/swapfile6.激活swap...
2018-11-06 12:11:30
5390
1
原创 图片合成工具类(BitmapMergeUtils)
package com.reader.xdkk.ydq.app.util;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.R...
2018-10-16 16:22:06
757
原创 Linux用户管理
一、使用 passwd 命令可以用来修改用户密码。修改当前用户的密码:$ passwdroot用户直接修改其他用户的密码:$ passwd <user_name>二、创建新用户创建一个用户名为:demo[root@localhost ~]# adduser demo为这个用户初始化密码linux会判断密码复杂度,不过可以强行忽略:[roo...
2018-10-15 17:54:49
286
转载 Android动态请求权限的工具类(转载、非原创)
Android动态请求权限的工具类Android 6.0(SDK 23)以上才需要用到动态权限。之前已经写过好多次关于Android动态权限的文章,但是后期发现每次都要进行复制粘贴,还要修改,还不如写一个自己的工具类,那就方便多了!网上也有很多关于动态权限的工具类,还有一些框架, 但是我发现有些使用还是挺麻烦,我感觉还是自己这个动态权限的工具类是非常好的。一.我的动态权...
2018-09-18 11:19:29
508
原创 android关键字特殊颜色显示的实现
在我们做开发的过程中,经常会遇到一段文字中间的几个字需要用特殊颜色或者大小等显示,有很多刚入门的开发没有头绪,下面我介绍几种常用的实现方法,首先上效果图:一、多TextView方式这种方式的好处是思路简单,坏处是如果这段文字不止一行布局很是困难,所以本地写死的简短文字可以采用,直接xml写就行了。<LinearLayout android:layout_wid...
2018-08-27 19:58:52
915
原创 从几个实例来记忆Activity的生命周期
关于Activity的生命周期,有一张图可以很直观的表示出来,如下但是对于具体的应用场景,并不明确,所以通过一下几个实例来说明Activity的生命周期方法,假设有两个Activity为A和B。1.A启动跳转到B,B返回A。控制台打印结果进入AA=====onCreate()A=====onStart()A=====onResume()A跳转到BA=====onP...
2018-08-16 11:57:27
862
原创 Android环形进度条
分享一个环形进度条供大家参考,项目地址https://download.csdn.net/download/weixin_40998254/10595267效果如图下面是该自定义进度条的代码,目前属于简陋版本,不过注释很详细,方便扩展。首先是自定View的代码/** * 作者:GJP on 2018/7/26 15:12 * 邮箱:xiaoxiao9575@126.c...
2018-08-10 11:25:11
3052
原创 Android自定义可拖动的悬浮布局
首先上效果图拖动这个自定义的View是继承RelativeLayout的,所以在写xml布局的时候直接当成RelativeLayout使用即可。由于在该类中注释的很清楚,在这里我就不再累赘直接上代码public class MyDragView extends RelativeLayout { private ViewDragHelper mDragger;...
2018-08-06 20:11:17
3458
原创 Android基于局域网的socket通信
最近写了一个关于局域网socket通信的demo,代码和ui都很low,但是功能实现了,所以贴出来记录一下主要流程如下服务端:启动服务-->显示ip-->等待接收-->显示消息-->收到回复客户端:录入ip-->输入消息-->发送消息-->收到结果如下图选择服务端还是客户端显示服务端ip客户端输入ip发送消息服务...
2018-07-23 10:55:13
7326
1
原创 ScrollView嵌套ListView或RecyclerView出现问题解决方法
ScrollView嵌套ListView,ListView显示不全的问题是一个老生常谈的问题,不建议嵌套有时候又身不由己呀,对于有些页面多布局和加header都不好用但是使用LinearLayout又不方便的时候,怎么看都是嵌套起来最简单,我们这些开发人员又能怎么办呢?那就怎么实现容易怎么来吧。解决ScrollView和ListView滑动冲突和只显示一行重新写一个View继承ListView,重...
2018-07-10 17:58:05
241
原创 android开发中版本控制工具忽略哪些文件
在开发过程中我们都避免不了使用版本控制工具,较为常用的又git和svn,在创建一个项目后第一次提交项目需要配置哪些是需要上传到库中,哪些需要忽略,显而易见本地编译生成的文件和环境文件我们不需要入库,为了以后方便我在此记录一下,算是一个实用型笔记吧。首先是android studio设置项如下(不可能找不到的)下面就是忽略项了附上git和svn(小乌龟)的下载地址git下载地址svn下载地址...
2018-07-09 16:08:14
411
原创 快应用的开发环境和基本项目构建
最近一段时间随着RN(React Native)的发展以及微信小程序的普及,前端技术一下子风光无限,大有取代app的趋势,国内的主流手机厂商又联合推出了一个新型的应用生态---快应用。什么是快应用呢,让我们先看一下官方的解释。1. 快应用是基于手机硬件平台的新型应用形态,标准是由主流手机厂商组成的快应用联盟联合制定。2. 快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台,以平台...
2018-06-26 14:48:06
1277
c3p0和dbUtils相关lib包
2018-11-27
圆形(环形)进度条
2018-08-10
Android基于局域网socket通信
2018-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人