自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android FileProvider笔记

通过FileProvider.getUriForFile(@NonNull Context context, @NonNull String authority, @NonNull File file)方法获得一个有临时权限的Uri给客户端用来访问本APP文件。当然看FileProvider类的注释更加详细。

2023-09-19 19:37:13 583

原创 IntentFilter笔记

Intent中的action必须命中中的一个action,才能匹配成功。Intent无action时匹配成功。

2023-09-18 15:58:43 439

原创 常用开源播放器整理

介绍:ExoPlayer是Google推出的强大的开源媒体播放器,它提供了灵活的API和丰富的功能,支持多种媒体格式和网络流媒体的播放。

2023-07-09 10:22:05 2829

原创 Java并发编程-synchronized

synchronized在jdk 1.6中的优化,synchronized实现原理,锁升级,锁粗化,锁消除,锁膨胀

2023-05-17 23:33:09 829

原创 Java并发编程-锁的分类

Java中提供的synchronized,ReentrantLock,ReentrantReadWriteLock都是可重入锁。:当前线程获取到A锁,在获取之后尝试再次获取A锁是可以直接拿到的。:当前线程获取到A锁,在获取之后尝试再次获取A锁,无法获取到的,因为A锁被当前线程占用着,需要等待自己释放锁再获取锁。

2023-05-16 23:22:54 61

原创 Java并发编程-ThreadLocal

每个Thread中都存储着一个成员变量,ThreadLocalMap。

2023-05-16 23:11:15 94

原创 Java并发编程-开启线程的方式

最终都是执行的execute(Runnable)方法,submit方法内部包装了一个FutureTask并返回回来。本质是包装了一个Callable对象,Callable的Call方法执行完得到结果。FutureTask的get方法是如何实现等待的?

2023-05-15 22:32:24 116

原创 Java并发编程-Condition

类似于Object对象锁,Lock.lock获得锁之后这些方法才能调。

2023-05-14 23:39:00 45

转载 4种方法教你如何查看java对象所占内存大小

如果需要查看某个对象的详细内存分布,可以借助jol工具类,不过这种当对象中内嵌其他对象时,只能计算ClassLayout方法中这个object对象所占内存的大小。当一个对象有多个属性,需要计算整个对象的大小时,可以借助org.apache.lucene工具类。使用这种jdk8方式时,Open JDK 不是天然支持的,需要set一下环境变量。最后,计算一个对象占用多大内存,需要提前了解java对象的布局,可以参考这篇。先引入maven坐标。先导入maven坐标。

2023-05-14 22:34:39 4737

原创 Java设计模式-命令模式

命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命令模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命令),同时命令模式也支持可撤销的操作。通俗易懂的理解:将军发布命令,士兵去执行。

2023-04-12 22:53:30 31

原创 ASM使用要点记录

AMS记录

2023-03-03 20:24:51 255

转载 解决Windows8/10使用VMware安装linux虚拟机无法Ping通网络的问题(Network is unreachable)或者ping 报name or service not known

解决Windows8/10使用VMware安装linux虚拟机无法Ping通网络的问题(Network is unreachable)或者ping 报name or service not known最近给自己的笔记本装了一个linux虚拟机,使用的是CentOS7.3 64位. 安装好以后想着给linux系统装一个图形化界面,却发现虚拟机无法ping通外网,局域网也同样出现问题,不过网卡是好的,排除这个问题。经过慢慢悠悠磨磨唧唧的查资料,问度娘,终于ping通。在查资料的时候翻了好多好多帖子,遇到的问题

2021-06-16 18:20:07 981

转载 一个不一样的 ANR

最近碰到一个 ANR 问题,拿到 traces 文件后,显示主线程的堆栈是下面这样的: 1234567 at android.os.MessageQueue.nativePollOnce(Native method)at android.os.MessageQueue.next(MessageQueue.java:323)at andro...

2020-01-22 17:30:27 529

原创 Xposed模块开发指南

1、Xposed框架是什么?Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运行。2、Xposed模块是什么?Xposed模块即按照Xposed模块开发规范开发出来的包含你想在别人Apk里面执行的代码的一个Apk。很多时候我们听到的微信抢红包神器、修改手机定位神器等...

2019-06-09 00:12:28 4909 3

原创 ubuntu连无线网

1、ubuntu如何通过蓝牙与手机连接上网(1)手机端设置:开启蓝牙 -> 开放蓝牙检测。(2)电脑端设置:系统 -> 蓝牙设置-> 添加新设备 -> 找到手机配备的蓝牙。(3)手机端与电脑端进行6位数字匹配。(4)手机端:设置通过蓝牙共享4G网络。(5)电脑端:网络连接->连接目标的蓝牙网络。(6)(可选)设置手机端蓝牙仅对匹配设备检测可见。...

2019-03-24 22:49:03 657

转载 终于有人把Java内存模型说清楚了!

网上有很多关于 Java 内存模型的文章,但是很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文就来整体的介绍一下 Java 内存模型,读完本文以后,你就知道到底 Java 内存模型是什么,为什么要有 Java 内存模型,Java 内存模型解决了什么问题等。本文中很多说法都是笔者自己理解后定义出来的。希望能够让读者可以对 Java 内存模型有更加清晰的认识。为什么要有内存模型...

2019-03-23 22:26:13 226

转载 Android 混淆技术全面整理

0x00 综述在你完成项目打包发布之前,很有必要加上代码混淆来避免一些用户恶意对你的 APK 进行反编译,通过反编译非加密的 dex 文件就可以看到源码,甚至用 Android Studio Analyze APK 就可以分析源代码。如果没有特殊原因,所有 APP 都应该开启混淆。最近也是有项目需要加混淆,所以整理一个系列教程做为备份与日后学习。增加混淆的必要性总结加密代码、资源文...

2019-03-09 14:46:02 634

转载 一种极低成本的Android屏幕适配方式

在Android开发中,由于Android碎片化严重,屏幕分辨率千奇百怪,而想要在各种分辨率的设备上显示基本一致的效果,适配成本越来越高。虽然Android官方提供了dp单位来适配,但其在各种奇怪分辨率下表现却不尽如人意,因此下面探索一种简单且低侵入的适配方式。传统dp适配方式的缺点android中的dp在渲染前会将dp转为px,计算公式:px = density * dp;density = d...

2018-07-06 15:32:11 237

原创 Android性能优化及安全要点

性能优化方向内存 内存泄露,在组件中使用线程时会出现内存泄露,RxJava bindLifeCycle解决此问题,使用Handler时,RxJava可以解决。 Activity或者Fragment结束的时候,关闭动画,Dialog等 LeakCany监测内存泄露。流、游标等关闭 图片占用内存,采用低质量加载,缩小加载,网络图片可以考虑服务器动态压缩图片尺寸。Bitmap使用完毕要及时释放。 缓存的...

2018-07-03 22:51:05 507

原创 APP优化总结

静态内存优化: 1、内存泄漏(线程、Handler、动画、) 2、图片(图片尺寸、质量,使用完及时释放) 3、SharePreference(一次性加载到内存,静态的,不要存放大对象),用文件或者数据库代替 4、单例,静态缓存 5、内存紧张时清除一些缓存,在onTrimMemory中,Glide、静态缓存等 3、其他()运行时内存分析优化: 包大小: 1、大文件(大图片、无用图片等)性能优化:...

2018-06-28 17:27:12 226

转载 实践App内存优化:如何有序地做内存分析与优化

由于项目里之前线上版本出现过一定比例的OOM,虽然比例并不大,但是还是暴露了一定的问题,所以打算对我们App分为几个步骤进行内存分析和优化,当然内存的优化是个长期的过程,不是一两个版本的事,每个版本都需要收集线上内存数据进行监控以及分析。版本迭代过程中,内存增长过快,不仅会导致一定概率的OOM,运行时若出现内存抖动,导致频繁GC,则会对App的流畅度以及用户体验造成很大影响。本文主要会根据实际项目...

2018-06-28 17:26:24 233

翻译 Android Stogage

Your data storage options are the following:Shared PreferencesStore private primitive data in key-value pairs.Internal StorageStore private data on the device memory.External StorageStore public data ...

2018-06-28 16:04:04 177

原创 Android Studio发布项目到Maven仓库注意事项

参考:https://blog.csdn.net/H_Zhang/article/details/51558800注意:1、在buildscript->dependencies中添加如下代码:jcenter-push.gradle里面的两个插件需要用到classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'classpa...

2018-06-15 15:53:48 194

转载 Android爬坑之旅之FileProvider(Failed to find configured root that contains)

最近在测试FileProvider相关功能的时候,在从自定义相册选择图片通过FileProvider来获取content uri的时候程序突然崩溃了,报出了Failed to find configured root that contains xxxx1的错误,一开始以为是自己的配置出错了,但是参照官方文档改来改去仍然没有任何作用,通过绞尽脑汁地排查,终于发现了错误原因,并找到了正确的解决方案,...

2018-05-28 16:46:07 590

原创 Android WebView图片查看

1、在WebViewClient的onPageFinished里面调用如下方法private void addImageClickListener(WebView webView) { webView.loadUrl("javascript:(function(){" + "var objs = document.getElementsByTagNa...

2018-05-07 18:24:00 875

原创 笔记

1、判断是否是主线程Looper.getMainLooper().getThread() == Thread.currentThread()2、PopupWindow使用问题在Android7.0上面如果使用如下方式会出现调用showAsDropDown方法PopupWindow顶到状态栏下方,而不是在指定View下方的现象,解决办法计算PopupWindow到屏幕底部实际需要的高度,不用MATC...

2018-05-07 10:04:04 168

原创 Serializable和Parcelable 笔记

Serializable:    serialVersionUID相同则表明序列化的类和当前类的版本是相同的,可以反序列化成功。不同,说明序列化的类和当前类相比发生了变化,则反序列化失败。如果类的serialVersionUID相同,但是增加或删除了一些成员变量,依然可以反序列化成功;但是如果类名或类成员变量的类型发生了变化,则类的结构有了毁灭性的变化,根本无法恢复。静态成员不会参与序列化,tra...

2018-04-22 13:27:58 170

原创 Android IPC笔记

Android中进程间通信方式:Intent、ADIL、Messenger、ContentProvider、Socket、共享文件Android中的多进程:一般是指一个APP开启多个进程。方式:四大组件在Manifest中添加android:process属性1)android:process=":abc"APP的私有进程2)android:process="edf"可以通过shareUID与其他...

2018-04-22 13:26:20 127

原创 MeasureSpec笔记

MODE_MASK 1100 0000 0000 0000 0000 0000 0000 0000SpecMode:1)UNSPECIFIED = 0 << 300000 0000 0000 0000 0000 0000 0000 0000父容器不对View有任何限制,要多大给多大,这种情况一般用于系统内部,表示一种测量状态。2)EXACTLY = 1 << 300100 ...

2018-04-17 23:02:31 136

原创 ConstraintLayout使用注意事项

1、需要在对应Module下添加依赖,目前发现在其他依赖的Module下添加过也不行    compile 'com.android.support.constraint:constraint-layout:1.0.2'2、参考文档:https://blog.csdn.net/lmj623565791/article/details/78011599https://blog.csdn.net/gu...

2018-04-09 12:03:10 571

原创 改变状态栏及字体颜色

1、框架https://github.com/Zackratos/UltimateBarUltimateBar.newImmersionBuilder()                .applyNav(true)         // 是否应用到导航栏                .build(this)                .apply();2、结合getWindow().get...

2018-03-30 17:01:33 351

转载 Android Material Design系列之RecyclerView和CardView

去年很早之前,我就讲解过RecyclerView的使用,今天我们就在讲解CardView的时候,顺便再把RecyclerView同时讲解一下。RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。RecyclerViewRecyclerView介绍RecyclerView作为替代ListView使用,它更先进,更灵活,RecyclerView标准化了...

2018-03-19 17:13:29 216

转载 Android 状态栏关于开发的几件事

Android 状态栏关于开发的几件事最近手头做了一个新的项目,开发中对状态栏的要求比较多,也作了一些总结,分享给大家。 简答题全屏、不保留状态栏文字(Splash页面,欢迎页面)全屏保留状态栏文字(页面上部有Banner图)标题栏与状态栏颜色一致(部分App风格)不同Fragment中对StatusBar的处理不一样设置状态栏文字的颜色切换fragment时,toolBar显示与否、status...

2018-03-12 15:29:16 503

原创 手机App之https抓包

环境:win7、jdk工具:burpsuite下载地址:http://www.jb51.net/softs/590164.html1、配置burpsuite打开burpsuite,切换到Proxy,然后切换到下面的Options选项,然后点击add,然后配置好端口,ip选择本机的ip地址,然后点击ok添加将running框勾选上 2、导入burpsuite证书在电脑端使用Firefox浏览器访问设...

2018-03-07 15:27:33 6167

转载 Android 冷兵器 之 tools

前言Android开发在所难免的就是UI的预览和调整,一般情况下都是直接run看效果,或者是使用AS的preview预览,但这同样带来个小问题,就是你的测试内容会跟随着代码被打包到apk中,如果没做容错的处理很有可能将测试内容展示给用户。还有就是像一些列表是不支持预览效果的,比如ListView。其实Android老早就有tools命名空间,作为一个开发快到一年的我,最近看到一篇文章才发现这个to...

2018-03-02 15:10:24 223

转载 Android TextView加上阴影效果

废话不多说直接说关键的:字体阴影需要四个相关参数:1. android:shadowColor:阴影的颜色2. android:shadowDx:水平方向上的偏移量3. android:shadowDy:垂直方向上的偏移量4. android:shadowRadius:是阴影的的半径大少最好这4个值都一起设计          shadowColor这个属性就不多说了,android:shadow...

2018-03-02 15:09:33 593

原创 Theme.AppCompat.Light.NoActionBar

Theme.AppCompat.Light.NoActionBar 找不到报错 检查是否与Android Studio版本号一致classpath 'com.android.tools.build:gradle:2.2.3'

2018-01-31 11:34:14 3078

转载 WebView自适应

一、图片自适应/** * 离线加载的网页内容要加上的一些网页源码 * 博主这里返回的网页源码是指包含body的内容的,所以这些网页的头和一些css样式可以直接拼接 */private String codePrefixOne = "\"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.

2018-01-22 14:20:30 351

转载 navicat for mysql 远程连接数据库时出现2003-Can't connect to Mysql on '主机名'(10061)解决方法

有时利用navicat for mysql 远程连接数据库时,输入主机名,密码以及端口后,连接测试时,出现2003-Can't connect to Mysql on '主机名'(10061)问题解决方法如下:本文远程连接的ubuntu下的数据库,原因是ubuntu系统的mysql不允许被远程连接操作因此需要修改mysql配置文件步骤:(1)cd /etc/mysq

2017-12-23 23:53:15 2842 1

转载 虚拟机中ubuntu不能联网问题的解决——NAT方式

ubuntu版本:ubuntu-16.04-desktop-amd64.iso设置虚拟机不能联网是很痛苦的,这里我就ubuntu的NAT上网问题就个人经验讲一下,其他的桥连接等没有使用就没有经验了。1.查看/设置下NAT的网络打开VMware Workstation,点击编辑——虚拟网络编辑器,查看NAT模式的网络。如下图示,如果你对自动分配的子

2017-12-23 22:50:33 524 2

微信公众号H5游戏平台完整源码下载(几十款游戏和应用)

微信公众号H5游戏平台完整源码下载(几十款游戏和应用) 超级读心术 激光防线 超级足球等的等。。。。

2016-08-23

Android可拖拽的GridView

Android可拖拽的GridView,效果还可以,带拖动动画,convertView复用

2015-07-14

以圆心散开的半圆菜单

以圆心散开的半圆形菜单 仅供参考学习,欢迎大家交流改进

2014-03-27

SSH编写的博客系统

一个完整的博客系统,基于ssh框架编写的javaweb,包含注册,发表文章,上传照片,网友评论等功能

2012-03-26

SSH编写的销售管理系统

一个完整的javaweb光盘销售系统,用ssh编写的,文档,录像都有,适合初学者模仿学习

2012-03-26

计算机网络第五版课后习题答案.doc

计算机网络第五版课后习题答案.doc 计算机网络第五版课后习题答案.doc

2011-06-21

组成原理期末模拟试卷.doc

组成原理期末模拟试卷 期末考试必备的要看看啊

2011-06-21

空空如也

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

TA关注的人

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