自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ubuntu安装微信客户端

【代码】ubuntu安装微信客户端。

2023-12-13 10:58:14 81

原创 Java加密2-MAC 对称密钥加密

java

2022-08-02 10:29:02 1728 1

原创 Java加密1-散列函数

java

2022-08-02 10:28:01 445

原创 Android自定义View实现Loading动态图

最近家里的宽带业务到期,客服打电话说之前的套餐没了,新套餐普遍涨价,就选了一个+20元绑定一个摄像头的套餐,前两天师傅上门安装了摄像头,我手机上下载一个“小翼管家”就能在手机上实时看家里情况。话说,这种收费服务就是抢劫呀!回到正题,“小翼管家”App做的一般,不过打开摄像头一刻,loading动画倒是让我挺有兴趣,于是决定在摸鱼的时间动手仿一个......画六边形实在有点麻烦,还要计算角度,没那么多时间,我还要打王者......就用圆角矩形代替了......package com.example.

2022-03-29 18:45:03 3173

原创 Linux常用命令汇总,以备不时之需

1、文件目录操作命令ls 显示文件和目录列表 -l 列出详细信息 -a 列出所有文件,包含隐藏文件mkdir 创建目录 -p 父目录不存在时先生成父目录cd 切换目录touch 生成一个空文件echo "xxx" > zzz 生成一个带内容的文件cat 显示文本文件内容cp 复制文件或目录rm 删除文件 -r 递归删除所有目录 -f 强制删除mv 移动文件或目录,或...

2021-08-17 18:48:08 123

原创 Android颜色透明度百分比转换

 百分比:0% HEX: 00 百分比:1% HEX: 30 百分比:2% HEX: 50 百分比:3% HEX: 80 百分比:4% HEX: A0 百分比:5% HEX: D0 百分比:6% HEX: F0 百分比:7% HEX: 12 百分比:8% HEX: 14 百分比:9% HEX: 17 百分比:10% HEX: 1A 百分比:11% HEX: 1C 百分比:12% HEX:...

2021-02-04 16:36:24 687

原创 Ubuntu系统terminal打不开的解决办法

前几天repo拉不下来代码,需要升级python3.6以上版本,ubuntu系统自带的python版本为2.7和3.5。搜索并捣鼓一圈,pyhton3.7安装过程总是报错,也没找到解决版本,最后放弃了。但terminal竟然打不开了,肯定是pyhton问题。 搜索了一圈,都是说在python3/dist-packages/gi/目录下拷贝两个文件名称包含35m的改成37m就OK,但是我这个问题报错根本不是ImportError: cannot import name '_g...

2020-12-17 16:41:43 5348 2

原创 ArrayBlockingQueue和LinkedBlockingQueue

ArrayBlockingQueue用数组实现的有界阻塞队列。此队列按照先进先出(FIFO)的原则对元素进行排序。默认情况下不保证访问者公平的访问队列,所谓公平访问队列是指阻塞的所有生产者线程或消费者线程,当队列可用时,可以按照阻塞的先后顺序访问队列,即先阻塞的生产者线程,可以先往队列里插入元素,先阻塞的消费者线程,可以先从队列里获取元素。通常情况下为了保证公平性会降低吞吐量。LinkedBlockingQueue基于链表的阻塞队列,同ArrayListBlockingQueue类似,此队列按照

2020-11-30 12:11:29 7953

原创 关于repo的应知应会

1. repo介绍 官方介绍:​​Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier t...

2020-10-22 16:02:53 1143

转载 文件类型识别----魔数

魔数简介:在识别文件类型时,我们很多人都是通过文件的后缀来识别的,如苍老师.mp4, 波老师.avi, 玛利亚.jpg。 使用后缀名识别文件类型不是特别准确,尤其是后缀民可以手动修改的情况下。 另外一种识别文件名的方式是: 利用文件的头部信息中的标记,我们称这个标记为魔数。也许这个解析不是特准确,但它对识别文件类型比较准确。常见文件类型魔数表: 类别 文件类型 Magic数 起始偏移 结束偏移 .

2020-08-19 14:25:42 4443

原创 Java虚拟机内存分配与回收策略

1、大多情况下,对象在新生代eden区分配,当eden区内存不足时,虚拟机触发一次minor GC。2、大对象直接进入老年代。避免在eden区和两个survivor区之间发生大量内存复制。3、长期存活的对象进入老年代。虚拟机为每一个对象定义了年龄计数器。如果对象在eden区出生并经历第一次minor GC后仍然存活,并且能被survivor容纳,将被复制到survivor区,并将年龄设为1。对象在survivor区每熬过一次minor GC,对象的年龄就加1。当对象的年龄增加到15(默认)时,就会晋

2020-08-13 12:32:53 112

原创 Java虚拟机垃圾回收算法

对象存活判定算法1、引用计数算法(主流虚拟机不采用)给对象添加引用计数器,没当一个地方引用它时,计数器的值加1,引用失效时,计数器值减1,当计数器值为0时,对象被认为不再使用。优点:实现简单,判定效率高。缺点:不能解决循环引用问题。2、可达性分析算法(主流虚拟机采用)通过一系列“GC root”作为起点,从这些节点向下搜索,搜索所走过的路径成为引用链。当一个对象到GC root没有任何引用链相连时,被认为不可达,因而认为是可回收对象。可以作为GC root的对象有:java虚拟机

2020-08-12 19:21:05 115

原创 Java虚拟机的内存模型总结

Java虚拟机运行时数据区分为五大区域:程序计数器、Java虚拟机栈、本地方法栈、堆内存、方法区。程序计数器:1、当前线程执行的字节码行号指示器。2、java虚拟机的多线程通过线程轮流切换并分配处理器执行时间片实现,在任何确定的时间点,CPU只会执行一条线程指令。因此,为了切换后能恢复到正确的执行位置,每个线程需要有独立的程序计数器,各线程间互不影响。3、对于Java方法,程序计数器记录虚拟机执行的字节码指令地址。4、对于Native方法,程序计数器为空。5、程序计数器不会发生OOM。

2020-08-06 12:26:14 124

原创 Support库与AndroidX对应关系

来源支持库映射:https://developer.android.google.cn/jetpack/androidx/migrate/artifact-mappings类映射:https://developer.android.google.cn/jetpack/androidx/migrate/class-mappings内容支持库映射:Old build artifact AndroidX build artifact android.arch.core:com

2020-05-27 12:00:28 2913

原创 带阻尼回弹效果的RecyclerView

一、前提接到新需求,要求列表滑动过程增加阻尼回弹效果,且即使列表不能填充一整个屏幕的情况下也支持滑动。有人说,给RecyclerView加上 android:overScrollMode="always" 就行了,事实证明,NO!这个东西只是在滑动到边缘是多了个水波阴影而已,没有阻尼回弹。又有人说,给ListView加上 android:overScrollMode="always" ...

2020-04-30 11:41:41 10069 5

原创 ubuntu下安装sublime text

sublime的作用就像gedit,但是由于它可以直接打开esotrace的文件,省去了转换的麻烦,还是能凑合用的。安装步骤:第一步执行命令:wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -第二步执行命令:sudo apt-get install apt-tr...

2020-03-12 11:48:33 2486

原创 StarUML安装

1,官网下载安装包,正常安装http://staruml.io/download2,下载破解包,解压后将app.asar文件替换StarUML安装目录下的resources/app.asar文件链接: https://pan.baidu.com/s/10ltZT1_uycPAHGBBDdCzeQ 提取码: 6pvs3,重启软件,进入Help->Enter license K...

2019-10-15 15:07:40 1469 2

原创 Glide虽好,可不要进坑哦

前段时间遇到这样一个问题,app挂后台,然后activity页面通过glide去加载一张网络图片显示到ImageView上,然后给ImageView设置另外一张图片,然后再把app切换到前台。整个过程大概如下:activity---onStopGlide.with(this).load(url).into(ImageView);...ImageView.setImageResour...

2019-07-17 16:45:21 651

原创 compile、implemention、api、compileOnly的区别

在gradle3.0中,如果我们依然使用compile依赖的话会有如下提示Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’ and ‘api’.可见,compile依赖关系已被弃用,被implementation和api替代,同样,provided也被compile only替代。...

2019-01-24 11:57:05 4551

原创 android adb命令查看进程和启动activity

查看运行的进程:查看所有进程adb shell ps查看指定包名的进程adb shell ps | grep "com.tencent.qq"强杀正在运行的进程:指定pid强杀:adb shell kill pid指定包名强杀:adb shell am force-stop com.taobao.taobao启动acitvity:adb shell am...

2019-01-23 12:01:27 8492 1

原创 Android中的清除数据和清除缓存有什么区别,它们分别清除了哪些文件

清除数据和清除缓存的区别反射调用系统隐藏接口,需要准备的东西:一、在AndroidManifest.xml中的manifest标签下添加声明android:sharedUserId="android.uid.system"二、添加如下权限 <uses-permission android:name="android.permission.DELETE_CACHE_FI...

2019-01-11 16:11:49 10528 1

原创 当Glide遇到wrap_content

当ImageView的宽高属性设置为wrap_content时,Glide由于不知道ImageView的实际宽高,所以加载的图片不会做压缩处理,完全按照图片实际大小加载,并且IamgeView的宽高为实际图片的宽高像素值,此时,ImageView控件显示很可能异常。解决方案:1、如果知道ImageView的宽高,直接把wrap_content改成实际大小,如60dp2、加载图片时调用一...

2019-01-09 12:05:01 2846

转载 实现单例模式的最佳实践

单例的枚举实现在《Effective Java》中有提到,因为其功能完整、使用简洁、无偿地提供了序列化机制、在面对复杂的序列化或者反射攻击时仍然可以绝对防止多次实例化等优点,单元素的枚举类型被作者认为是实现Singleton的最佳方法。其实现非常简单,如下:public enum Singleton {    INSTANCE;    private Singleton() {}}...

2018-11-23 15:44:49 259

原创 关于两道java面试题

1、 public static void main(String[] args) { Thread t = new Thread(){ @Override public void run() { System.out.println("aaa"); } }; t.run(); System.out.println("bbb"); }以上的输出...

2018-11-23 14:27:00 274

原创 APK瘦身需要考虑的方面

首先,AndroidStudio2.2以后的版本可以直接把一个apk文件拖拽到as中打开一个apk文件,查看它的内部组成结构,以及各自占用的内存大小。也可在build-analyze apk打开。其中,占用内存从高到低排序显示,通常情况依次为:classes.dex,res,lib,assets,resources.arcs,META-INFO,manifest.xml因此,APK瘦身...

2018-11-23 12:22:52 151

原创 自定义View需要注意的事项

1、让View支持wrap_content属性直接继承View或ViewGroup的控件,如果不在onMeasure中做处理,当控件设置wrap_content属性时无法达到预期效果。wrap_content属性会失效。2、让View支持padding属性直接继承View的控件,如果不处理padding属性,则padding会失效。如果继承ViewGroup的控件,还需要处理子元素的m...

2018-11-19 11:27:55 357

原创 Android Studio3.0以上版本找不到Android Device Monitor

自Android Studio 3.0开始弃用Android Device Monitor,Android Developers官网上的原话是:Android Device Monitor is a standalone tool that provides a UI for several Android app debugging and analysis tools. Howev...

2018-11-16 15:00:09 3066

原创 MIME类型总结

多用途Internet邮件扩展(MIME)类型 是一种标准化的方式来表示文档的性质和格式。 它在IETF RFC 6838中进行了定义和标准化。互联网号码分配机构(IANA)是负责跟踪所有官方MIME类型的官方机构,您可以在媒体类型页面中找到最新的完整列表。浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档;因此服务器设置正确以将正确的MIME类型附加到响应对象的头部是非常重要的...

2018-11-01 11:17:18 3576

原创 android开发代码仓库地址

jcenter地址http://jcenter.bintray.com/使用配置:buildscript { repositories { jcenter() }}allprojects { repositories { jcenter() }}mavenCentral搜索仓库文件:http://mvnr...

2018-10-24 16:07:56 1458

原创 如何避免我的Activity页面被截屏

        现在坐地铁上下班,都在用易通行app,果然是很便利,小伙伴儿们再也不用带公交卡了,再也不需要卡里没钱排队充值了。        前段时间坐地铁,突发奇想,既然易通行app是生成二维码给地铁闸口扫码付费的,那么可不可以生成二维码后直接截屏保存图片,就可以卸载易通行了呢?以后每次坐地铁直接找出二维码图片扫码就行了!经过尝试,发现易通行二维码界面根本不能截屏!!并且在多任务里,易通行...

2018-10-22 17:09:17 1480

原创 如何在多任务列表中不显示我的app信息

要想在用户长按HOME键后自己的APP不出现在弹出的多任务列表中,可以在相应应用程序的AndroidManifest.xml文件中的activity标签中添加如下属性: android:excludeFromRecents=”true”...

2018-10-22 17:02:25 3077

原创 SparseArray和ArrayMap的内部实现

1、SparseArraySparseArrays map integers to Objects.  Unlike a normal array of Objects,there can be gaps in the indices.  It is intended to be more memory efficient than using a HashMap to map Integer...

2018-10-17 15:38:43 295

原创 Android Studio打包前删除没用到的资源文件

1,找到Analyze菜单2,选择Run Inspection by name选项3,在弹出的搜索框中输入:unused resources4,回车,OK5,在Inspection Results中弹出所有未使用到的资源,包含xml,png6,删除并重新打包 ...

2018-10-15 11:39:39 2002

转载 插件加载机制

 上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务;通过Hook AMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制。但是我们启动的『没有在AndroidManifet.xml中显式声明』的Activity和宿主程序存在于同一个Apk中...

2018-09-27 15:18:56 172

转载 插件化Activity生命周期管理

在Java平台要做到动态运行模块、热插拔可以使用ClassLoader技术进行动态类加载,比如广泛使用的OSGi技术。在Android上当然也可以使用动态加载技术,但是仅仅把类加载进来就足够了吗?Activity,Service等组件是有生命周期的,它们统一由系统服务AMS管理;使用ClassLoader可以从插件中创建Activity对象,但是,一个没有生命周期的Activity对象有什么用?所...

2018-09-27 15:00:04 254

转载 Hook机制之AMS&PMS

 在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook;插件框架通过AOP实现了插件使用和开发的透明性。在讲述DroidPlugin如何实现四大组件的插件化之前,有必要说明一下它对ActivityManagerServiche以及PackageManagerService的Hook方式(以下简称AMS,PMS)。ActivityManager...

2018-09-27 10:59:57 211

转载 Hook机制之Binder Hook

Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。插件框架作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,自然会对这些系统服务做出一定的改造(Hook),使得插件的开发...

2018-09-27 10:51:33 470

转载 Hook机制之动态代理

使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。代理是什么为什么需要代理呢?其实这个代理与日常生活中的“代理”,“中介”差不多;比如你想海淘买东西,总不可能亲自飞到国外...

2018-09-27 10:41:49 532

转载 解决 Android N 7.0 上 报错:android.os.FileUriExposedException

解决 Android N 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/Download/appName-2.3.0.apk exposed beyond app through Intent.getData()解决方法1、在AndroidManifest.xml中添加如下代码&l...

2018-09-18 17:41:28 244

原创 android通用Adapter

CommonAdapterpackage com.liang.commonadaper.commonadapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import andro...

2018-09-07 15:23:12 272

空空如也

空空如也

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

TA关注的人

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