自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Unresolved reference: kotlinx 和 Unresolved reference:xxx

是因为用于使用 Gradle 构建的 Kotlin 版本与 IDE 插件中的版本不一样的原因。这个报错是因为build.gradle中忘记apply plugin了。点击install - apply。同步以后再次编译发现报错。

2024-02-14 14:11:36 699

原创 微软Bing地图获取栅格瓦片或图块

微软bing地图获取栅格瓦片或图块

2024-02-14 14:05:17 438

原创 LayoutInflater.inflate全面解读

LayoutInflater.inflate() 是 Android 系统中用于将 XML 布局文件转换成相应的 View 的方法。在 Android 开发中,我们经常使用此方法来动态创建和填充布局。参数含义:int resource: 这是要加载的 XML 布局资源 ID;ViewGroup root: 可选的 ViewGroup 参数,它作为新创建View的父容器。如果提供了父容器,inflate 过程会考虑父容器的 LayoutParams,并可能根据需要调整新创建视图的属性;

2024-01-27 09:58:55 997

原创 scoped属性和深度选择器

如果第三方组件允许添加自定义类名,可以在使用该组件时为其添加额外的类名-- Vue 组件模板 --> < template > < third-party-component class = " custom-class " /> < style > .custom-class {

2024-01-26 17:08:57 911

原创 【设计模式】设计模式六大原则

单一职责原则一个类只负责一项职责难点这个“单一”是怎么界定的,每个人都有自己的看法,需要根据个人经验一级具体的业务逻辑来确定但是,其基本的指导原则是:两个完全不同的功能就不应该出现在同一个类中,一个类中应该是一组相关性很高的函数、数据的封装里氏替换原则所有引用基类的地方必须能透明的使用其子类对象难点如何建立抽象里氏替换的核心原理是抽象,将公共的行为进行抽象,不同子类实现不同的行为优点提高代码复用性,提高代码可扩展性缺点由于抽象依赖于继承这个特性,所以缺点是有侵入性,代码冗余,灵活性

2022-01-11 22:53:58 308

原创 【gradle】1.groovy安装和配置

下载Groovy地址:http://groovy-lang.org/download.html下载后解压。配置环境变量open .bash_profileexport PATH=$PATH:/Users/wh-js/dev/groovy-3.0.7/bin让这个配置文件在修改后立即生效。source .bash_profile查看是否配置成功执行 groovy -version如果配置成功,显示如下:Groovy Version: 3.0.7 JVM: 1.8.0_241 Vendor

2021-12-22 15:13:37 783

原创 使用Vant Weapp,发现Dialog的确认按钮不能正确显示的问题

问题先上效果一个确认按钮的弹窗,发现确认按钮跑偏两个按钮的弹窗,发现取消按钮占的位置太大,确认按钮超出dialog弹出框一开始以为是最新的库版本有问题,app.json中"style": "v2"的原因查看issues和官方文档 发现是这个库还未兼容v2关于style:v2的介绍微信客户端 7.0 开始,UI 界面进行了大改版。小程序也进行了基础组件的样式升级。app.json 中配置 “style”: "v2"可表明启用新版的组件样式。本次改动涉及的组件有 button icon

2021-12-22 14:58:53 1516

原创 【微信小程序】实现垂直滚动消息、滚动广告,无限轮播

利用setInterval实现垂直滚动消息、滚动广告,无限轮播

2021-08-23 11:16:03 3473

原创 Android指定浏览器访问指定网页

Android指定浏览器访问指定网页;便捷的获取app的包名的方法

2021-05-12 10:19:11 769

原创 Android中与Activity相关的知识扫盲和备忘

什么是Task、几种启动Activity的方式、各生命周期的区别和联系、横竖屏切换生命周期、启动模式以及应用场景、什么是Affinity、定义启动模式的方法和区别、Activity回收和数据恢复、onSaveInstanceState和onRestoreInstanceState调用时机 、intent-filter、Activity的进程优先级

2021-05-12 10:17:27 264

原创 ‘sed‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

在使用adb命令查看task和Activity的时候,发现报错“‘sed’ 不是内部或外部命令,也不是可运行的程序 或批处理文件”看样子是没有配置sed的环境变量,或者没有sed工具从网上找了一下,说这个命令是Linux系统上的,而且如果安装了Git是自带这个工具的,自己找了一下,确实在下面的目录下找到了sed.exeC:\Program Files\Git\usr\bin然后配置一下环境变量,重启命令行就ok了...

2021-05-12 10:14:11 3721

原创 超级好用的github代码查看插件:Octotree

chrome插件—Octotree,可以方便查看github项目结构

2021-04-29 00:08:55 736

原创 使用ThreadPoolExecutor实现控制一个方法的并发量,实现同时只能有10个线程进入方法

线程池是什么线程池是一种基于池化思想管理线程的工具,设计它的核心目的是解决资源管理问题,可以降低资源消耗、提高响应速度以及提高线程的可管理性。ThreadPoolExecutorThreadPoolExecutor是Executor最下层的实现类参数1:corePoolSize:核心池大小参数2:maximumPoolSize 线程池中允许的最大线程数参数3:keepAliveTime 线程空闲时的存活时间,即当线程没有任务执行时,继续存活的时间,默认情况下,该参数只在线程数大.

2021-03-15 08:00:09 1474 7

原创 【微信小程序】组件中properties与data的异同

总结组件中porperties与data的相同点与不同点以及需要注意的地方

2021-02-20 11:05:30 7219 2

原创 【微信小程序】回调函数

介绍微信小程序的回调函数的使用

2021-02-19 14:16:45 5314

原创 【微信小程序】引入模块(require、import)和返回模块(module.exports、export)

require、import与module.exports、export的使用方式

2021-02-18 15:32:59 4363

原创 【微信小程序】this指代与es6箭头函数处理 Cannot read property ‘data‘ of undefined

this指代let that = this和箭头函数()=>{}处理this作用域问题

2021-02-18 10:06:58 743

原创 【微信小程序】利用WXS在WXML中使用toFixed方法

WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构

2021-02-17 16:22:53 1822

原创 【微信小程序】通过三元表达式给view动态设置class

<button class="check-button {{btnDesc == '已核销' ? 'checked-color' : 'uncheck-color'}}" catchtap="payClick" hidden="{{payBtnHidden}}">{{btnDesc}}</button>其中checked-color是“已核销”的按钮样式,uncheck-color是“核销”的按钮样式...

2021-02-17 15:17:41 1426

原创 【微信小程序】button border: none;去掉边框后后还有边框

button::after { border: none;}

2021-02-17 15:01:56 1012

原创 【微信小程序】使用splice方法删除数组中的某一个元素

项目中遇到删除列表中某一个item的需求,当使用splice的时候,理解有问题。let item = that.data.items.splice(0, 1)这里返回的item是被删除的那一条,不是删除后剩下

2021-02-06 15:03:19 5013 1

原创 【微信小程序】input组件中文字水平居中

text-align: center

2021-02-06 14:24:17 4668

原创 【微信小程序】设置page页面的背景颜色、设置view的高度占满全屏

页面背景颜色和view高度占满全屏

2021-02-04 17:26:12 4400

原创 【微信小程序】商品详情页HTML标签解析库 wxParse与mp-html

上找了两个库,一个4年没更新有着7.5k Start的老库[wxParse]另外一个是1.4k Start的库[mp-html]

2021-01-29 15:45:42 1081

原创 【微信小程序】 解决“enablePullDownRefresh“: true下拉刷新还是不起作用

scroll-view造成的无法触发刷新

2021-01-24 18:07:38 5287

原创 【微信小程序】解决 设置position:fixed后遮挡内容、内容显示不全

通过padding巧妙解决position:fixed遮挡内容造成的内容显示不全问题

2021-01-24 18:07:14 5612

原创 Some selectors are not allowed in component wxss, including tag name selectors, ID selectors,and...

我出现这个问题的原因是在组件的样式中使用了button { }这个异常的原因是解决方法在组件的Component中添加 options: { addGlobalClass: true, },然后将组件中出现问题的样式剪切到使用该组件的page的样式中,我出现问题的样式是button { }警告就解除了。设置addGlobalClass: true 或者apply-shared 表示页面 wxss 样式将影响到自定义组件,但自定义组件 wxss 中指定的样式不会影响页面.

2021-01-17 23:56:10 4634

原创 梳理Binder原理之ServiceManager的注册流程(启动流程)AndroidP

ServiceManager是什么、ServiceManager启动流程、ServiceManager核心工作

2021-01-11 23:04:08 918

原创 梳理Zygote进程-AndroidP(9.0)版本

Zygote简介Zygote翻译为受精卵,主要用于孵化子进程。所有的应用程序进程以及System Server进程都由Zygote进程通过fork函数孵化出来。Zygote进程的触发在init.rc与init.zygoteXX.rc中触发,可以查看梳理init进程文章。Zygote进程的启动过程main函数中传入的参数argv是-Xzygote /system/bin --zygote --start-system-server接着进行字符串比较如果是zygote服务zygote = t

2021-01-03 10:54:33 409 2

原创 梳理init进程-AndroidP(9.0)版本

其中init进程是Linux系统中用户态的第一个进程查看Init.cpp代码初始化属性服务解析init.rcLoadBootScripts方法中根据service、on、import创建不同类型的Parser,然后解析init.rcParseConfig最后调用到ParseData当解析完init.rc后,会调用end_section(),把解析出的service放入一个Vector结构的列表 service_listServiceListZygote进程启动 —init.r

2020-12-27 20:47:00 292

原创 梳理一下Android 系统启动流程

Android系统是一款基于Linux的开源系统,系统的架构划分为:系统应用层、Java API Framework层、native C/C++库和Android 运行时、硬件抽象层、和Linux内核层。各层级之间的衔接关系可以通过梳理进程

2020-12-20 21:43:25 225

原创 AndroidStudio 报错 CMake ‘3.10.2‘ was not found in PATH or by cmake.dir property.

编译代码后报错CMake ‘3.10.2’ was not found in PATH or by cmake.dir property.解决方法:File-Setting 找到Android SDK 打开SDKTools选项卡,下载CMake

2020-12-11 15:35:13 4940 3

原创 文字绘制

文字绘制调用Canvas的drawText方法先上源码 /** * Draw the text, with origin at (x,y), using the specified paint. The origin is interpreted * based on the Align setting in the paint. * * @param text The text to be drawn * @param x The x-coord

2020-10-24 09:46:33 140

原创 依赖倒置、控制反转、依赖注入、面向接口编程的理解

我的另一篇文章 :《以面向对象的角度分析抽象类和接口》依赖倒置依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖低层模块,二者都应该依赖其抽象。通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,并且能够降低修改程序所造成的风险。比如,我们有一个TeaRoom类(茶室),有drinkBlackTea 喝红茶与drinkGreenTea 喝绿茶两个方法,来模拟去茶室喝茶代码如下(完整例子放在g

2020-07-30 17:04:07 768

原创 浅析Java中创建对象的过程

前言当Java程序中使用new 创建对象时,类加载机制会检查这个类是否被加载过(类加载机制可以看一下另一篇文章《Android中ClassLoader双亲委托机制》),如果没被加载过会执行对象的创建过程,流程图如下类加载一个Java程序,会通过javac编译成class文件,然后通过虚拟机加载到方法区检查加载检查 new 这个指令的参数是否能在常量池中定位到一个类的 符号引用,并检查类是否已经被加载、解析和初始化过。分配内存JVM为对象分配内存。相当于把一块确定大小的内存从堆中划分出来。分配

2020-07-30 17:03:32 174

原创 一个你读框架源码之前必须要理解的技术点,泛型(二)

上一篇介绍了一下各种定义,包括什么是泛型、泛型的优点、泛型擦除、泛型类、泛型接口、泛型方法、泛型通配符以及泛型上下边界,这一篇主要是上一篇的延续和补充限定类型变量在上一篇中,我们知道在使用泛型的时候,可以通过extends 限制泛型实参的上边界,除了限制上边界,我们还可以对泛型的类型变量加以约束,看下例子:class ExampleClass8{ //计算最小值 public <T extends Comparable> T min(T paramA, T paramB){

2020-07-30 17:01:39 150

原创 记一下Java中基本数据类型所占大小以及bit、Byte和KB的联系

基本数据类型有8种:byte、short、int、long、float、double、boolean、char整数型:byte、short、int、long浮点型:float、double布尔型:boolean字符型:charbyte:1byte = 8bitshort:2byteint:4bytelong:8bytefloat:4bytedouble:8byteboolean:1bytechar:2byte计算机中数据用0或1来表示,0或1占1位(1bit),bit 也是计算机存

2020-07-30 16:31:53 318

原创 数据结构篇 --- 线性表数据结构,数组

数组数组(Array)是一种线性表数据结构,用连续的内存空间,存储相同类型的数据线性表线性表(Linear List)数据是线性排列的,每个线性表中的数据最多只有一个头和一个尾(或者一个前一个后),线性表数据结构包括:数组、队列、栈、链表等非线性表非线性表中,数据之间并不是前后关系,一个数据可能跟多个数据有关系,非线性表包括 二叉树、堆、图等。连续的内存空间如图所示,系统给数组分配了一个连续的内存空间,即数组各个内元素的存地址也是连续的当我们需要访问到数组的某个位置的元素时,可以根据首地址与

2020-07-30 16:29:08 588

原创 通过一张图理解 scrollBy()与scrollTo()的区别

通过字面意思,scrollTo是指移动到某一位置,scrollBy该怎么理解呢?先看一下两者的源码scrollTo:scrollBy:根据源码的实现,参数x是水平移动的位置,y是垂直方向移动的位置scrollBy调用了scrollTo方法;scrollBy是在上一次移动的位置的(mScrollX和mScrollY)基础上进行逸动的;scrollTo是直接移动到(x,y)的位置需要注意的是,scrollTo和scrollBy都是移动的内容,而不是将View做整体的移动,对于一个TextVi

2020-07-30 16:28:03 1838

原创 垃圾回收器如何判断对象的“存活”,以及类何时回收

前言在垃圾回收器回收堆里面的对象的时候,需要判断对象是否还被其它地方使用,此时的状态我们可以比作对象是“存活”的,如果对象没有被其它地方使用,就回被垃圾回收器回收。如何判断对象是否是“存活”的呢?有两个方法:引用计数法和可达性分析...

2020-07-30 14:51:14 259

空空如也

空空如也

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

TA关注的人

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