自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 settings.gradle 文件详解

此文件用于声明需要参与Build的项目。Declares the configuration required to instantiate and configurethe hierarchy of {@link org.gradle.api.Project} instances which areto participate in a build.每个Settings对象和settings文件是一一对应的,Gradle在编译前会将Settings对象实例化并解析对应的setting文件。

2021-10-08 14:11:28 8164

原创 关于Fuchsia及鸿蒙的一点想法

最近鸿蒙进行了2.0代码的开源,此次开源提供了对手机的支持。Google近日也发布了操作系统Fuchsia的开源。其实Fuchsia一直在github上进行开源(在微软收购了github后将代码仓库进行了迁移),此次开源可以看为官方对Fuchsia扶正的声明,同时也是对鸿蒙操作系统的一个回应。从两个操作系统的介绍上我们可以看到,双方都旨在打造一个“大一统”的操作系统,新操作系统的应用范围覆盖了物联网设备、移动端设备甚至PC。首先,以两家未来争锋的主战场,物联网设备来分析下。物联网设备具有应用场景多变、设备

2020-12-29 19:41:46 1146

原创 Java方法调用器

这里写自定义目录标题在项目中由于要调用一系列的布尔方法,当布尔方法返回特定值时不调用剩下的方法,写了一个类处理此问题,记录下,源码如下。package com.xbl.utils;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.List;/** * 有时我们需要调用一系列方法,在这些方法中如果方法中返回布尔类型的方法在返回特定值时应该直接返回不继续执行 * 剩下的方法。如组装车辆分组装

2020-12-16 10:15:56 127

原创 Android内存泄漏分析--错误调用View的post()方法导致的内存泄漏

前段时间我们的应用在dumpsys meminfo时发现在一个Activity退出后,dump结果中Activity数未减一。多次进入后Activity数量持续增加,很明显–内存泄漏了。

2020-09-23 17:43:24 669

原创 【每天学习五分钟JVM】Java虚拟机中的垃圾回收算法

这里写自定义目录标题垃圾回收算法内存分代管理垃圾回收算法实现垃圾回收的方式一般分为标记清除算法、标记整理算法及复制算法。1.标记清除算法。算法分为标记及清除两个阶段,在标记完成后统一回收所有被标记的对象。缺点有两个:首先,此算法执行效率不高;其次为在软件运行一段时间后内存分部将比较零散,当执行完清理后将导致可用内存为许多不连续的内存碎片,当要分配大块内存时由于没有连续的可用内存将再次引发GC。标记清除算法示意图如下图。**2.标记整理算法。**此算法与标记清除类似,第一阶段都为标记阶段,在此阶段对

2020-09-23 16:29:31 61

原创 Virtual APK源码解析一--初始化插件管理器

在使用VirtualAPK时我们调用了PluginManager.getInstance方法,在该方法中对插件管理器进行了初始化代码如下。public static PluginManager getInstance(Context base) { if (sInstance == null) { synchronized (PluginManager.class) { if (sInstance == null) { sIn

2020-09-11 01:05:31 211

原创 Java线程池运行流程

一、线程池简介Java提供的线程池有四种,创建方式分别对应如下,这四个创建方法又有重载的方法用于指定Thread如何创建(此处先简单的写下,以后有需要再进行补充。1.Executors.newFixedThreadPool(2);2.Executors.newCachedThreadPool();3.Executors.newSingleThreadExecutor();4.Executors.newScheduledThreadPool(4);这四个线程池作用分别为:固定大小的线程池、可缓存的

2020-07-23 11:37:23 516

原创 重构--分离方法/提炼方法

使用场景:项目中出现一个方法中的代码过长,或在项目开发/维护中向方法中时不时添加代码导致方法膨胀,导致代码难以阅读的情况下使用。我们可以将方法中的部分代码段分离出来定义一个单独的方法,将长方法进行分离,把逻辑强相关的代码组织到一起,把这块代码所用到的临时变量改为方法的参数与原方法进行分离。如在一个绘制控件的代码中,我们首先要求出该控件各绘制元素的位置及大小,设置不同绘制元素的绘制样式,我们可以将不同元素的绘制单独定义为一个方法来避免绘制方法过长难以阅读和维护。效果/作用:1.长方法变成了多个短方法,在

2020-06-18 17:39:02 191

原创 Android 8.0启动Service问题

起因今天在和同事定义一个Bug,该Bug具体情况为我们的应用在开机后收到开机广播在Application中启动Service报错,报错内容如下。记录下Bug处理过程及定位结果以备不时之需。java.lang.RuntimeException: Unable to instantiate application 【包名被我替换了】: java.lang.IllegalStateException...

2020-03-31 16:56:45 455

原创 在Android4.0上兼容Leanback

前言前段时间公司需要将项目(使用了Leanback)移植至Android4.0的机型上,由于Leanback官方文档中说明该库需要基于4.2.4及以上的Android系统。所以,常规的路是走不下去的。问题定位最开始将Leanback库移植至Android4.0时,将所有高版本以上的API的调用都替换为了低版本API,如View.setBackground()等。以此解决了项目编译出错的问题...

2020-03-19 11:39:57 573

原创 Android上一种用于选择颜色的控件(颜色选择器)

目录引言核心代码控件整体代码demo引言最近在做一个项目时其中有一个需求–自定义灯光颜色。要求通过手机端控制灯光颜色,手机端预设五种颜色及用户可自定义颜色。在百度上搜索找到一个开源的色环控件ColorPickerView,可实现颜色的自定义,效果如图1。给客户看了效果后,客户不是很满意,客户想要类似于UI设计中色相环那样的效果,如图2。既然客户要求了,那就必须得按客户要求来做。开始做,第...

2019-07-31 01:31:08 3051 1

org.apche.http.legacy库.zip

Android6.0以上不支持org.apache.http.legacy库的直接使用,需要在项目中添加依赖,可在build.gradle文件下添加useLibrary 'org.apache.http.legacy'。对于无法使用此办法解决的可使用此包进行文件依赖。需注意对于某些高版本的legacy.jar,将库中的某些类未实现,在类中直接抛出了异常,故会导致RunTimeException("Stub")。此库基于26版本不存在上述所说问题。

2020-09-17

空空如也

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

TA关注的人

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