自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (2)
  • 收藏
  • 关注

原创 TypeScript常用类型

TypeScript常用类型

2023-10-10 10:02:12 256

原创 TypeScript基本介绍和安装

TypeScript,简称为TS,是javascript的超集,js有的功能ts都有。TypeScript = Type + javascript,即在js的基础上增加了类型支持。TypeScript是由微软开发的开源编程语言,可以在任何运行js的地方运行。

2023-10-10 10:00:44 243

原创 HTML基础 - SVG标签

svg是基于XML语法的图像格式,全称:Scalable Vector Graphics,即可缩放矢量图。svg图片可以加载。svg可以绘制基本图形,如:直线、圆形、矩形、多边形、路径等,下面就详细介绍下。

2023-09-04 15:02:25 3073

原创 由Android10适配到Android12时遇到相关编译失败问题

由Android10适配到Android12时遇到相关编译失败问题

2023-08-29 15:38:14 1619

原创 HTML基础 - 常用标签

标题标签,只有h1 ~h6 这6个标题标签,字体大小依次减小。段落标签:2.图片标签支持图片格式:gif、jpg、jpeg、png、bmp、webp。属性::图片的资源地址,支持本地图片、网络图片;:图片说明,当图片加载失败时会显示该内容:用于鼠标放到图片上时显示文字;页面跳转标签:属性::超链接跳转地址,可以是本地路径/相对路径、url地址,若是url地址时务必添加或,否则无法正常跳转页面;:定义超链接页面的打开方式,有以下几个值:锚点跳转即页面内部位置跳转,通过给超链接的属性设置以的方

2023-06-21 17:46:37 265

原创 解决Vue移动端弹窗滚动穿透

在弹窗显示时,设置body的style的overflow属性值为hidden,弹窗关闭时恢复原来设置;弹窗内容滑动到底部,再向上滑动弹窗底部内容跟随滑动;弹窗内容滑动到顶部,再向下滑动弹窗底部内容跟随滑动;

2023-06-16 17:32:24 525

原创 HTML基础 - 基本格式

笔者是一个vue小白,就在这里掉进坑里了,折腾了老半天没爬上岸,最后没办法请大佬救场,分分钟给解决。静态数据使用defaultValue没问题,但是动态加载的数据就不能这么用了。注意:v-model值不能直接使用。的方式,否则vs编辑器报错。

2023-06-16 17:30:57 856

原创 记首次小程序遇到坑及解决

由于工作需要,首次进行微信小程序开发,从基础环境搭建到小程序发布,体验到小程序便捷的同时,也踩了不少坑,在此记录下。

2023-03-20 17:05:50 1107

原创 浅谈android:taskAffinity属性及问题解决

浅谈android:taskAffinity属性及问题解决

2022-10-25 10:17:57 6072 2

原创 解决AndroidStudio编译工程长时间卡在Gradle:Build model问题

最近两天突然原来的Android工程都长时间编译不过,最长一个编译了1天3小时55分(瞬间崩溃了)。尝试新创建一个工程,编译也要13分钟。好像也没干啥,从gradle.properties 、build.gradle、升级gradle插件、升级Android studio和重新安装、删除gradle等等,一路各种排查试错,也没能解决,一度怀疑人生,冲动的想重装电脑了(想想肯定跟这没关系就忍住了)。于是又继续度娘,在看到关于Android Studio gradle:build model长期执行不完的问

2022-05-30 17:56:45 8485 4

原创 AndroidStudio新建工程gradle编译报Connect to repo.maven.apache.org:443问题

Android studio新版本创建项目后项目的build.gradle配置发生了改变,allproject配置移动到settings.gradle中,用dependencyResolutionManagement替代,如下:旧版本build.gradle:...allprojects { repositories { mavenCentral() google() maven { url 'http://maven.aliyun.com/ne

2022-05-16 17:09:46 5304 9

原创 APK加固原理详解

一、前言之前使用的360加固,挺好用的,从2021年底的时候限制每天每个账号仅上传2次apk(免费的,不知道VIP的是不是这样)。通过这个事情,感觉技术还是掌握在自己手里稳妥点,不用受制于人,想怎么玩就怎么玩。通过技术调研有两条路子可以走:方式一:直接对apk进行加密,启动应用时通过壳程序去加载apk运行;方式二:仅对原apk的dex文件进行加密,启动应用时对dex解密,通过DexClassLoader进行加载;本文主要是参考了360免费加固的思路,所以主要研究的方式二。二、原理先

2022-04-07 14:35:41 7165 9

原创 Jetpack Compose动画

前面讲到布局基础和图像绘制,本篇来讲下Jetpack Compose动画。介绍动画主要从下图中几点进行讲解一、内容动画与布局内容变化相关的几种动画,官方称之为高级别动画API。AnimatedVisibility,实验性功能,可组合项可为内容的出现和消失添加动画效果;AnimatedContent,实验性功能,可组合项在内容根据目标状态发生变化时,添加内容的动画效果;AnimateContentSize,可组合项内容大小发生变化动画;Crossfade,可组合项的淡入淡出;Animat

2022-03-10 15:03:25 4326

原创 Jetpack Compose之手势使用

前言在一个应用中用户的交互操作非常多,如:点击、滑动、拖动等,这些操作统统离不开手势。在正式介绍Compose手势前,我们先来了解下Jetpack Compose手势整体框架,做到心中有图。一、点击这个含义都懂就不解释,实现点击采用的修饰符clickable,如下:@Composableprivate fun GestureOfClick(){ var colorState by remember { mutableStateOf(false) } Box(modifier =

2022-03-01 15:39:52 692

原创 Kotlin函数式编程

什么是函数式编程函数式编程是于面向对象编程范式相齐名的一种编程方式,主要依赖于高阶函数返回的数据,这些高阶函数专用于处理各种集合,可方便的联合多个同类函数构建链式操作以创建复杂的计算行为。在Kotlin中支持多种编程范式,有以下函数类别:变换transform、过滤filter、合并combine。变换变换是函数式编程的第一大类函数,变换函数会遍历集合内容,用一个以值参的形式传入的变换器函数,变换每一个元素,然后返回已包含修改数据的集合并可传给链上的其他函数。Kotlin中常见的变换函数中有ma

2022-02-20 21:45:54 1983

原创 Kotlin关键字和操作符

与Java对比,将kotlin特有的关键字排到前面。硬关键字关键字含义val声明一个只读变量var声明一个可变的变量when开始一个when表达式,类似Java中的switchas用于类型转换;为导入指定一个别名as?用于安全类型转换fun声明一个函数in1.指定for循环中迭代的对象;2.当作中缀操作符,检测一个值所在的区间;3.将一个类型参数标记为逆变!in1.用作中缀表达式,检测一个值不属于一个区间is检测一个变

2022-02-18 17:14:42 308 1

原创 Kotlin常用标准函数

1.apply函数可看作一个配置函数,传入一个接收者,通过调用一系列函数配置它以便使用,如果给apply提供lambda表达式,则会返回配置好的接收者。apply能让每个配置函数都作用于接收者,这种行为又叫相关作用域。配置函数是针对接收者的隐式调用。fun main() { var file = File("D://file.txt").apply { setReadable(true) setWritable(true) }}2.let函数le

2022-02-18 17:11:10 556

原创 Kotlin进阶 - 泛型

在Android开发中我们经常用到泛型,如:List、Map、Set、Adapter等,那么在Kotlin中同样支持泛型。什么是泛型呢?泛型:把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型。一、Kotlin中定义泛型方式在Kotlin中定义泛型有跟Java一样,有以下两种方式:定义在类上定义在函数中定义在类上示例:class MagicBox<T>(val item: T) { var available = false fun fetc

2022-02-18 17:10:05 729 1

原创 Kotlin进阶 - 集合

本篇主要讲述Kotlin集合,主要包括List、Set、Array、Map四类。一、List篇1.1 固定长度的List定义方式:使用listOf定义固定长度的list集合。如:val list = listOf("Sam", "Jack", "Chork", "Yam")println(list[2])取值方式:索引、elementAt,这两种方式越界会抛异常;getOrElse、elementAtOrElse、getOrNull、elementAtOrNull,这几种属于安全取值,

2022-02-18 17:09:04 1943

原创 Kotlin进阶 - 类

这篇属于Kotlin进阶,讲了与类相关内容,主要涉及到:类定义、类属性和函数、类继承、抽象类和接口、委托与代理、单例、数据类、伴生对象、运算符重载、枚举和密封类。1、面向对象入门,类的创建示例://创建一个简单的类,该类有两个变量class HelloKotlin(var letter:String ,var letter2: String)fun main() { var demo = HelloKotlin("Hello"," Kotlin") println("${de

2022-02-18 17:07:49 335

原创 Kotlin基础

本篇文字主要记录Kotlin的基本知识及与Java对比所不同之处。1、基础变量类型及取值范围Byte 存储值范围 整数 -2^8 ~ 2^8 -1,即-128 ~ 127;Short 存储值范围 整数 -2^16 ~ 2^16 -1,即-32768 ~ 32767;Int 存储值范围 整数 -2^32 ~ 2^32 - 1,即-2147483648 ~ 2147483647;Long 存储值范围 整数 -2^64 ~ 2^64 - 1,即-92233720

2022-02-18 17:05:51 3278

原创 Jetpack Compose布局(四) - ConstraintLayout

前面几篇中介绍了布局相关的:布局基础知识、Material组件和布局、自定义布局。本篇我们继续来介绍下布局的最后一个知识点:Compose中使用ConstraintLayout。ConstraintLayout 有助于根据可组合项的相对位置将它们放置在屏幕上,在使用多个嵌套 Row、Column、Box 和自定义布局元素时可用该布局替代。在实现对齐要求比较复杂的较大布局时,ConstraintLayout 很有用。类似Android View系统中的ConstrantLayout布局。使用Compo

2022-02-08 11:34:41 1867

原创 Jetpack Compose布局(三) - 自定义布局

在上篇《Jetpack Compose技术快速上手》一文中简单介绍了Compose,那么这边我们就来学习下Compose的布局。由于布局这块涉及内容较多,会分开写。布局主要包括:布局基础知识、Material组件和布局、自定义布局、Compose中使用ConstraintLayout。自定义布局涉及的知识点:Compose布局的过程在 Compose 中,界面元素由可组合函数表示,此类函数在被调用后会发出一部分界面,这部分界面随后会被添加并呈现在屏幕上的界面树中。每个界面元素都有一个父元素,还可

2022-02-07 14:52:08 1130

原创 Jetpack Compose技术快速上手

一、什么是Compose?Jetpack Compose 是Google新推出的用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,使用更少的代码、强大的工具和直观的Kotlin API,快速让应用生动而精彩。二、Compose的优势更少的代码在Android View系统,实现一个功能需要有XML和Kotlin/Java两部分,而在Compose中不需要拆分两部分,所有代码都使用同一种语言编写并且位于同一个文件中,往往复杂的功能几行代码就能搞定,因此Com

2022-02-07 11:28:09 1146

原创 Jetpack Compose布局(二) - Material组件和布局

在上篇《Jetpack Compose技术快速上手》一文中简单介绍了Compose,那么这边我们就来学习下Compose的布局。由于布局这块涉及内容较多,会分开写。布局主要包括:布局基础知识、Material组件和布局、自定义布局、Compose中使用ConstraintLayout。本文重点讲解Material组件和布局。主要涉及:Material中常用组件和Material布局。如下图:Material中常用组件常用组件包括:按钮、文字 Text、输入框、图标 Icon、分割线 Divid

2022-02-07 11:18:49 2919 1

原创 Jetpack Compose布局(一) - 布局基础知识

在上篇《Jetpack Compose技术快速上手》一文中简单介绍了Compose,那么这边我们就来学习下Compose的布局。由于布局这块涉及内容较多,会分开写。布局主要包括:布局基础知识、Material组件和布局、自定义布局、Compose中使用ConstraintLayout。本文重点讲解布局基础知识。主要涉及:可组合函数、标准布局元素、基本组件、布局模型、修饰符、槽位布局。如下图:可组合函数可组合函数是 Compose 的基本构建块,返回值是 Unit 的函数,用于描述界面中的某一部

2022-02-07 11:14:18 1619

原创 Gradle配置支持小米、OPPO、VIVO等应用商店升级64位架构

一、原因最近收到小米等应用商店升级64位架构的通知,大致内容如下:为更好地提升APP性能体验,降低APP功耗影响,小米应用商店与OPPO应用商店、vivo应用商店共同推进国内安卓生态对64位架构的升级支持。行业适配节奏如下:2021年12月底:现有和新发布的应用/游戏,需上传包含64位包体的APK包(支持双包在架,和64位兼容32位的两个形式,不再接收仅支持32位的APK包)2022年8月底:硬件支持64位的系统,将仅接收含64位版本的APK包2023年底:硬件将仅支持64位APK,32位应用无

2021-11-25 16:08:42 2448

原创 一个辅助MVP架构项目快捷开发库-MvpFastDagger

分享一个针对MVP架构开发时,能辅助生成相应的mvp文件的开源库,不用在手动重复的创建model、view、presenter、module、component文件了,提升开发效率。源码地址:MvpFastDaggerMvpFastDaggerMVP+Dagger+Annotation项目架构快速生成mvp相应的文件。MVP+Dagger+Annotation架构中每新增一个Activi...

2019-01-17 17:00:15 281

原创 Android studio module代码上传到github作为库引用

话不多说,直接进入主题。1、在项目的root build.gradle文件中增加如下配置dependencies { ...... classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' }2、在需要作为库引入的module目录下的build.gradle增...

2018-08-07 17:36:35 1405 2

原创 Android使用注解@IntDef @StringDef替代Enum提升性能

众所周知,在Android中使用Enum枚举会极大的影响 性能,内存消耗大。原因如下: Android官方文档中也有说明,enum中的每一个值其实都是一个Object对象,每声明一个值就会创建一部分的内存以使它能够被引用到这个对象,相比于静态常量,enum会花费近2倍的内存空间。通常使用定义静态常量来代替Enum使用,如下:public class XXConstant{ ...

2018-05-23 10:35:03 5457

原创 使用Okhttp3中的DiskLruCache进行文件缓存

相信很多同学都用过okhttp3这个强大的网络请求框架,应该会发现okhttp3中也封装了一个DiskLruCache磁盘缓存类,具体这个怎么用的呢,下面就来讲一讲。Okhttp3中封装的DiskLruCache类用于磁盘文件缓存,类似JakeWharton的DiskLruCache,但两者还是有区别的,继续看下去。1.首先要引入okhttp3资源包,这里直接使用的是retrofit2,引

2018-01-10 17:53:55 2600

原创 Android Websocket+protobuf使用

11

2017-11-06 13:52:32 2900 2

原创 MAC 运行gradle报permission denied错误

命令行中输入:./gradlew xxxx,  出现下错误:zsh: permission denied: ./gradlew解决方式:chmod +x gradlew

2017-11-06 11:11:41 12556 4

原创 Android获取AndroidMenifest.xml中的meta-data数据

在配置文件AndroidMenifest.xml中,meda-data有以下几种存在位置:1.配置在元素中;2.配置在元素中;3.配置在元素中;4.配置在元素中;

2015-03-10 15:08:06 662

原创 android Scheme使用 打开指定的Activity

1.在配置文件AndroidMenifest.xml文件中增加下配置 注:上配置添加在需要使用Scheme控制启动的Activity下,例如: <activity

2015-03-10 14:42:42 1268

原创 工厂模式

工厂模式(Factory Pattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择

2015-02-14 11:49:03 361

原创 设计模式简介

他们所提出的设计模式主要是基于以下的面向对象设计原则:对接口编程而不是对实现编程。优先使用对象组合而不是继承。设计模式的使用设计模式在软件开发中的两个主要用途。开发人员的共同平台设计模式提供了一个标准的术语系统,且具体到特定的情景。例如,单例设计模式意味着使用单个对象,这样所有熟悉单例设计模式的开发人员都能使用单个对象,并且可以通过这种方

2015-02-13 17:32:11 483

转载 Python进阶07 函数对象

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 秉承着一切皆对象的理念,我们再次回头来看函数(function)。函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋值给其它对象名,或者作为参数传递。 lambda函数在展开之前,我们先提一下lambda函数。可以利用

2015-02-03 11:32:30 261

转载 Python进阶06 循环对象

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念。循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式。 什么是循环对象循环对象是这

2015-02-03 11:31:52 298

转载 Python进阶05 循环设计

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在“循环”一节,我们已经讨论了Python基本的循环语法。这一节,我们将接触更加灵活的循环方式。 range()在Python中,for循环后的in跟随一个序列的话,循环每次使用的序列元素,而不是序列的下标。之前我们已经使用过rang

2015-02-03 11:30:50 310

Okhttp3中DiskLrcCache的使用

主要是okhttp3中缓存DiskLruCache类的使用完整例子,主要实现了写入、读取功能,代码中有详细的注释,代码是以网络的图片资源做为缓存例子。想学习的朋友可以下载看看

2018-01-10

SWT+JFace+API

学习swt必备的API,学习JFace必备的API,基本包含了所有swt jface中类的方法介绍

2011-05-05

空空如也

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

TA关注的人

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