自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(470)
  • 资源 (6)
  • 论坛 (2)
  • 收藏
  • 关注

原创 元宇宙OKfly--下一个千倍币

根据现有的数据来预测才叫预测,千倍只能在一级市场产生,元宇宙项目概率最大。在一级市场元宇宙项目中,我看好okfly1、上了非小号、cg和cmc,权限已丢,池子已锁,通过创宇审计。2、社区共识度很强,让我看到了shib影子,社区领头人执行力强,从来不画大饼,说到做到。这点是我最看重的,shib和doge能成功离不开高共识度的社区。3、第二期游戏下个星期要上线,可以开心的打金了,下个星期上线xt平台,下个星期跨链到bsc4、一个币要起来名字很重要,凡是蹭现有热度高的基本都是一波流,okfly

2021-10-22 16:26:11 11

原创 koin快速上手

Gradle Setup#添加 Koin Android 依赖项,如下所示:// Add Maven Central to your repositories if neededrepositories { mavenCentral() }dependencies { // Koin for Android compile "io.insert-koin:koin-android:$koin_version"}本例中我们一共需要编写5个文件,分为如下四个步

2021-09-02 14:25:34 21

原创 AndroidStudio中打开新项目提示:Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA)

在导入Google官方项目时提示我们Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA) version '202.7660.26.42.74可是检查更新后看到明明是最新版本的Android studio,仍然无法成功导入项目。此时应该是gradle的版本不对导致的。修改点一:gradle-wrapper.properties中所指定的gradle是我当前的版本所不支持的原本是7.1.1,.

2021-09-01 16:22:48 272

原创 Android Studio 出现 Android studio add configuration

出现的错误如下:明明连接上了ADB,设备,gradle编译也通过了,但是就是无法加载设备。后来经过多次尝试,发现是刚下载的Android studio自带的SDK版本太高导致,我们可以选择低一些的版本。我将31前面的√去掉后,选择的Android8.0的版本,安装完成后,就绑定好了。...

2021-07-20 19:34:17 228 1

原创 冷启动优化闪屏页

目录前言1.在drawable界面创建splash_background.xml文件2.创建style样式3.把这种主题风格设置给启动页总结前言市面上的有些App,点击App图标后,会出现白屏或者黑屏一段时间的问题。为什么会出现这种问题呢,其实在启动Acitivty的启动过程中,onCreate()方法并不是发生在窗口绘制的第一步,系统会在执行这个步骤之前,先绘制窗体,这时候onCreat()还没被执行,我们的setContentView(R.layout.activity_

2021-07-13 16:57:05 18

原创 jetpack源码解析--liveData、LifeCycle、viewModel

1、liveData原理:数据变化发送端(viewmodel内含livedata,postValue/setValue):livedata需要配合viewmodel使用,其中viewmodel是数据源的提供者(网络或Room数据库或某个任务提供的数据源),这个数据使用MutableLiveData装饰,通过postValue/setValue通知观察者,更新数据。数据监听端(observe):通过LiveData.observe(this,newObserver<Integer>)实现

2021-05-07 15:55:21 38

原创 Android面试:view相关原理

Android 之你真的了解 View.post() 原理吗?https://www.jianshu.com/p/ea464eb15436通过View.post()获取View的宽高引发的两个问题:1post的Runnable何时被执行,2为何View需要layout两次;以及发现Android的一个小bughttps://blog.csdn.net/scnuxisan225/article/details/49815269Android 获取 View 宽高的常用正确方式,避免..

2021-04-20 16:45:47 36

原创 冷启动优化掉ContentProvider

多ContentProvider的问题:Android 的启动流程是这样的,首先调用Application的attachBaseContext()方法,然后调用ContentProvider的onCreate()方法,接下来调用Application的onCreate()方法。而Jetpack的组件App Startup设计的初衷,正是为了收拢 ContentProvider。有不少第三方的 SDk,为了使用者不必手动调用SDK#init方法,使用了 ContentProvider 这一...

2021-04-20 11:39:27 156

转载 判断App位于前台或者后台的6种方法

作者: wenmingvsGithub: https://github.com/wenmingvs/AndroidProcess用法传入Context参数与想要判断是否位于前台的App的包名,会返回ture或者false表示App是否位于前台//六种方法任选其一//使用方法一Boolean isForeground = BackgroundUtil.getRunningTask(context, packageName);//使用方法二Boolean isForeground.

2021-04-11 23:35:53 494

原创 锁、线程同步、hashmap、concurrentHashMap相关面试

死磕synchronized底层实现https://juejin.cn/post/6844904196676780040面试官没想到一个Volatile,我都能跟他扯半小时https://juejin.cn/post/6844904149536997384《我们一起进大厂》系列-ConcurrentHashMap & Hashtablehttps://juejin.cn/post/6844904023003250701#heading-2《我们一起进大厂》系列-A..

2021-04-11 23:10:59 38

原创 Http面试相关

OfferKiller | Https 为什么是安全的?(上)https://juejin.cn/post/6940859556918624263HTTPS详解二:SSL / TLS 工作原理和详细握手过程https://juejin.cn/post/6844904046063517704https://juejin.cn/post/6844904038253740046SSL / TLS 握手详细过程"client hello"消息: 客户端通过发送"client h.

2021-04-09 17:29:09 40

原创 Android图形图像相关(二)

Android硬件加速(二)-RenderThread与OpenGL GPU渲染https://www.jianshu.com/p/dd800800145b对于Android APP而言,基于GPU的硬件加速绘制可以分为如下几个阶段:第一阶段:APP在UI线程构建OpenGL渲染需要的命令及数据 第二阶段:CPU将数据上传(共享或者拷贝)给GPU,PC上一般有显存一说,但是ARM这种嵌入式设备内存一般是GPU、CPU共享内存 第三阶段:通知GPU渲染,一般而言,真机不会阻塞等待GPU渲染

2021-04-01 15:55:40 42

原创 Android硬件加速、图形绘制相关

Android硬件加速原理与实现简介https://tech.meituan.com/2017/01/19/hardware-accelerate.htmlSurfaceFinger工作流程https://juejin.cn/post/6898525503960186887详细文章见 Android-SurfaceFlinger启动与工作原理surfaceflinger 是在 Android 系统启动时解析 init.rc 文件启动的守护进程,在 SurfaceFlinger .

2021-04-01 15:35:24 118

原创 handler的同步屏障使用场景

结论:为当前线程的 MessageQueue 添加同步屏障来屏蔽同步消息,保证 VSync 信号到来后立即执行绘制,而不是要等前面的同步消息。https://juejin.cn/post/6894206842277199880系统显示原理:显示系统一般包括 CPU, GPU 以及 Display 三个部分,CPU负责计算帧数据,把计算好的数据交给GPU,GPU会对图形数据进行渲染,渲染好后放到buffer(图像缓冲区)里存起来,然后Display(屏幕或显示器)负责把buffer里的数据呈现

2021-04-01 14:49:49 250

原创 Android图形图像相关(一)

Android 图形组件https://source.android.com/devices/graphics综述:应用开发者可通过三种方式将图像绘制到屏幕上:使用画布、OpenGL ES或Vulkan。无论开发者使用什么渲染 API,一切内容都会渲染到Surface上。Surface 表示缓冲区队列中的生产方,而缓冲区队列通常会被 SurfaceFlinger 消耗。在 Android 平台上创建的每个窗口都由 Surface 提供支持。所有被渲染的可见 Surface 都被 Surf...

2021-04-01 14:29:48 74

原创 LayoutInflater相关

Android源码阅读分析:从资源文件到控件布局——LayoutInflater分析https://blog.csdn.net/dongzhong1990/article/details/80243794

2021-04-01 11:05:44 13

原创 查找gradle最新版本

去官网下载即可:https://services.gradle.org/distributions/将gradle配置文件中的版本改为官网中存在的版本即可

2021-03-31 17:16:51 251

原创 activity任务栈和启动模式

唠唠任务栈,返回栈和启动模式https://zhuanlan.zhihu.com/p/210825079?utm_source=wechat_sessiontaskAffinity前面提到了Activity 想要的任务栈,taskAffinity的作用就是指定想要的任务栈。但它并不会在任何场景下都会起作用。未显式声明 taskAffinity 的 Activity 都具有默认的任务栈,该任务栈的名称是应用包名。当启动模式设置为standard或singleTop时,它...

2021-03-31 14:22:13 48

原创 java基础:IO、NIO

Java NIO、IOhttps://lrh1993.gitbooks.io/android_interview_guide/content/java/basis/java-nio.html轻松理解java中的IO与NIOhttps://zhuanlan.zhihu.com/p/27204492BIO,AIO,NIO理解:https://baijiahao.baidu.com/s?id=1666632547627347318&wfr=spider&for=pc..

2021-03-29 11:26:29 58

转载 Android窗口机制(五)最终章:WindowManager.LayoutParams和Token以及其他窗口Dialog,Toast

转自:https://www.jianshu.com/p/bac61386d9bf前面几篇文章基本介绍完Activity上的窗口机制,但是我们常见的窗口就还有Dialog,Toast这些,本篇文章就来介绍这两个的窗口机制以及WindowManager.LayoutParams和TokenWindowManager.LayoutParams首先,先跟大家介绍这个WindowManager.LayoutParams,在前面几篇文章中,都有出现过这个LayoutParams,我们看下具体的源码。.

2021-03-27 16:39:48 80

原创 Android面试:ViewRootImpl相关

Android窗口机制系列:Android窗口机制(一)初识Android的窗口结构Android窗口机制(二)Window,PhoneWindow,DecorView,setContentView源码理解Android窗口机制(三)Window和WindowManager的创建与ActivityAndroid窗口机制(四)ViewRootImpl与View和WindowManagerAndroid窗口机制(五)最终章:WindowManager.LayoutParams和Token以及其他窗口Dial

2021-03-27 16:19:28 78

原创 Android面试:MultiDex相关

Q:用MultiDex解决何事?其根本原因在于?MultiDex解决方法数65535的限制问题,即方法数不能超过65535个;方法id是short类型2个字节来存储的,所以数目范围应在0-2^32即0-65535;Q:Dex如何优化?MultiDex工作原理分析和优化方案;Q:主Dex放哪些东西?主Dex和其他Dex调用、关联?主dex中:应用启动就必须加载的类,有一个keep文件来控制;其他dex文件都是通过主dex加载进来的;Q:什么是ODEX?Android应用程序中有一个

2021-03-27 15:59:24 46

原创 git新建分支并同步到远程分支列表

1、创建本地新的分支:git checkout -b dev_local_0012、将本地新分支推送到远程分支库中:git push --set-upstream origin dev_local_001

2021-03-27 15:06:59 271

转载 属性动画和补间动画的原理及区别

一、结论:属性动画:所见即所得,最终的显示位置变了,坐标也变了;补间动画:所见并非所得,虽然最终的显示位置变了,但是坐标还是之前的。https://www.jianshu.com/p/5d0899dca46e二、属性动画和补间动画的基本编写方式我一度在论坛上看到人使用了 TranslateAnimation 对控件做了移动操作,然后发现在 View 的新位置点击并没有响应自己的点击事件,反倒是之前的位置能够响应。实际上,补间动画仅仅是对 View 在视觉效果上做了移动、缩放、旋转和淡入淡出

2021-03-27 14:56:41 121

原创 Android面试文集整理--持续更新

Android面试整理、Android每日一问:https://www.jianshu.com/u/f690947ed5a6

2021-03-27 14:46:34 23

原创 ContentProvider妙用 --- 完成application初始化

我们都知道 ContentProvider 的 onCreate() 的调用时机介于 Application 的 attachBaseContext() 和 onCreate() 之间。那么有些操作需要在application中初始化的工作我们完全可以放到ContentProvider中处理,leakCanary2.0就是这么做的,把 init 的逻辑放到库内部,让调用方完全不需要在 Application 里去进行初始化了,十分方便。这样下来既可以避免开发者忘记初始化导致一些错误,也可以让我们庞大的

2021-03-27 14:21:51 200

原创 Android面试必背:service生命周期相关

Service的生命周期以及各种回调的总结!https://blog.csdn.net/kkkkkxiaofei/article/details/17392357Service的onRebind()方法什么时候会调用https://blog.csdn.net/fenggering/article/details/53116311当我们既想绑定一个Service(为了实现Activity和Service的交互)又想在 Activity停止时,Service不会停止,我们可以先StartS.

2021-03-27 12:35:07 34

原创 Android面试:网络必备--keepalive和长连接

长连接和Keepalive详解TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能。默认的Keepalive超时需要7,200,000 milliseconds,即2小时,探测次数为5次。它的功效和用户自己实现的心跳机制是一样的。keepalive工作原理,在一个给定连接上,两小时之内无任何活动,服务器便向客户端发送一个探测段。(我们将在下面的例子中看到探测段的样子。)客户端

2021-03-27 12:25:56 131

原创 handler相关学习(三)handler必背

Android-Handler同步屏障https://www.jianshu.com/p/2fb96d4e0cd5一、消息机制之同步屏障Handler设置同步屏障之后可以拦截Looper对同步消息的获取和分发。加入同步屏障之后,Looper只会获取和处理异步消息,如果没有异步消息会进入阻塞状态。消息机制的同步屏障,其实就是阻碍同步消息,只让异步消息通过。而开启同步屏障的方法就是调用下面的方法:MessageQueue#postSyncBarrier()创建同步消息的源码如下:

2021-03-27 11:20:21 57

原创 OKHttp源码相关、常见问题

OKHttp源码解析https://www.jianshu.com/p/27c1554b7fee

2021-03-26 16:10:24 66

原创 java运行时注解和编译注解

区别运行时注解与编译时注解的区别是什么呢?a)保留阶段不同。运行时注解保留到运行时,可在运行时访问。而编译时注解保留到编译时,运行时无法访问。b)原理不同。运行时注解是Java反射机制,Retrofit运行时注解,需要用的时候才用到,而编译时注解通过APT、AbstractProcessor。c)性能不同。运行时注解由于使用Java反射,因此对性能上有影响。编译时注解对性能没影响。这也是为什么ButterKnife从运行时切换到了编译时的原因。d)产物不同。运行时注解只需自定义注解处理器

2021-03-25 13:46:33 352

转载 动态代理

这种模式有什么应用场景呢?先说下生活中对应的场景,明星接通告一般商家要找明星做活动,是要先找到他的经纪人,然后经纪人去负责一些琐碎的或者运营方面的事情,而明星只需要做具体的活动相关事情就可以了。这里经纪人的作用就是作为了一个代理。静态代理首先是静态代理,上代码 /** * 首先声明一个接口,用于工作的接口 */ public interface IStarDao { void dowork(); } /** * 明星工作.

2021-03-24 20:52:41 19

原创 Dialog为何只能用Activity的Context

Context必须是Activitydialog中windowManager的获取mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);如果上述context是Application,实际调用的是ContextImpl.getSystemService,获取的WM是new WindowManagerImpl(display);即mParentWindow为null;如果上述cont

2021-03-24 19:53:43 124 1

原创 Service相关

Q:启动与停止Service两种方式第一种通过startService()与stopService()启动和停止服务,Service与启动它的Activity无法进行通信和数据交换 第二种通过bindService()与unbindService()启动和停止服务。在启动时,通过bindService(Intent, ServiceConnection, int)启动服务,unbindService(ServiceConnection) 停止服务。启动ServiceConnection参数为交互数据的

2021-03-24 14:34:56 25

转载 Java中的泛型会被类型擦除,那为什么在运行期仍然可以使用反射获取到具体的泛型类型

“编译器会进行泛型擦除”是一个常识了(好吧,实际擦除的是参数和自变量的类型)。这个过程由“类型擦除”实现。但是并非像许多开发者认为的那样,在 <..> 符号内的东西都被擦除了。看下面这段代码:import java.lang.reflect.ParameterizedType;import java.util.ArrayList;import java.util.List; public class ClassTest { class Foo<E extends C

2021-03-23 20:35:56 238

原创 为啥HashMap 桶中超过 8 个才转为红黑树

JDK 1.8 的 HashMap 和 ConcurrentHashMap 都有这样一个特点:最开始的 Map 是空的,因为里面没有任何元素,往里放元素时会计算 hash 值,计算之后,第 1 个 value 会首先占用一个桶(也称为槽点)位置,后续如果经过计算发现需要落到同一个桶中,那么便会使用链表的形式往后延长,俗称“拉链法”当链表长度大于或等于阈值(默认为 8)的时候,如果同时还满足容量大于或等于 MIN_TREEIFY_CAPACITY(默认为 64)的要求,就会把链表转换为红黑树。同样,后续如

2021-03-23 19:28:42 380

原创 IdleHandler相关

IdleHandler 说白了,就是 Handler 机制提供的一种,可以在 Looper 事件循环的过程中,当出现空闲的时候,允许我们执行任务的一种机制。IdleHandler 是 Handler 提供的一种在消息队列空闲时,执行任务的时机。但它执行的时机依赖消息队列的情况,那么如果 MessageQueue 一直有待执行的消息时,IdleHandler 就一直得不到执行,也就是它的执行时机是不可控的,不适合执行一些对时机要求比较高的任务。Q:IdleHandler 主要是在 MessageQue

2021-03-23 17:43:56 19

原创 Android Stuido4.1 的R.java位置

在主工程的目录下\build\generated\not_namespaced_r_class_sources\debug\r\com\xxx包名\R.java

2021-03-23 17:13:30 107

原创 Android集合SparseArray、ArrayMap使用场景

SparseArray1、SparseArray比HashMap更省内存在某些条件下性能更好,主要是因为它避免了对key的自动装箱(int转为Integer类型),它内部则是通过两个数组来进行数据存储的,一个存储key,另外一个存储value,为了优化性能,它内部对数据还采取了压缩的方式来表示稀疏数组的数据,从而节约内存空间,我们从源码中可以看到key和value分别是用数组表示: private int[] mKeys; private Object[] mValues;我

2021-03-23 16:10:33 75

转载 Android measure、layout、draw耗时对比

内容RelativeLayout、LinearLayout、FrameLayout、ConstraintLayout这四种类型的measure、layout、draw耗时对比。java测试试图结构:测试方式使用一个结构很是深的试图结构,重复执行measure、layout、draw各1000次。计算耗时。web结果(单位:ms):总结能够看出,各类布局除了measure差异比较大外,layout和draw耗时差异不大。 RelativeLayout在measure这一步

2021-03-23 16:02:16 90

登陆成功界面

登陆成功界面

2015-07-21

matjava1.8.rar

MAT旧版本可以用java1.8打开

2021-09-14

PixelRulers.rar

PixelRulers.rar

2021-01-20

Windows环境下32位汇编语言

2016-06-09

bootstrap首页制作

bootstrap首页制作,酷炫效果,可以学习使用。

2015-07-21

0day安全:软件漏洞分析技术(第2版).pdf (部分章节)

0day安全:软件漏洞分析技术(第2版).pdf 部分章节 高清版

2016-10-05

QT中 QTablewidgetitem 程序崩溃

发表于 2016-03-02 最后回复 2017-01-19

关于正则表达式提取if else结构体问题

发表于 2016-01-05 最后回复 2016-01-05

空空如也

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

TA关注的人 TA的粉丝

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