<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[seevc的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/seevc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; seevc]]></copyright><item><title><![CDATA[gradle编译失败:A dependency must not be empty]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/145677012</link><guid>https://blog.youkuaiyun.com/seevc/article/details/145677012</guid><author>seevc</author><pubDate>Mon, 17 Feb 2025 10:41:04 +0800</pubDate><description><![CDATA[解决gradle编译失败:A dependency must not be empty]]></description><category></category></item><item><title><![CDATA[kotlin中泛型中in和out的区别]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/144596594</link><guid>https://blog.youkuaiyun.com/seevc/article/details/144596594</guid><author>seevc</author><pubDate>Thu, 19 Dec 2024 22:45:42 +0800</pubDate><description><![CDATA[【代码】kotlin中泛型中in和out的区别。]]></description><category></category></item><item><title><![CDATA[TypeScript常用类型]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/133739821</link><guid>https://blog.youkuaiyun.com/seevc/article/details/133739821</guid><author>seevc</author><pubDate>Tue, 10 Oct 2023 10:02:12 +0800</pubDate><description><![CDATA[TypeScript常用类型]]></description><category></category></item><item><title><![CDATA[TypeScript基本介绍和安装]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/133739748</link><guid>https://blog.youkuaiyun.com/seevc/article/details/133739748</guid><author>seevc</author><pubDate>Tue, 10 Oct 2023 10:00:44 +0800</pubDate><description><![CDATA[TypeScript，简称为TS,是javascript的超集,js有的功能ts都有。TypeScript = Type + javascript，即在js的基础上增加了类型支持。TypeScript是由微软开发的开源编程语言，可以在任何运行js的地方运行。]]></description><category></category></item><item><title><![CDATA[HTML基础 - SVG标签]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/132669663</link><guid>https://blog.youkuaiyun.com/seevc/article/details/132669663</guid><author>seevc</author><pubDate>Mon, 04 Sep 2023 15:02:25 +0800</pubDate><description><![CDATA[svg是基于XML语法的图像格式，全称：Scalable Vector Graphics，即可缩放矢量图。svg图片可以加载。svg可以绘制基本图形，如：直线、圆形、矩形、多边形、路径等，下面就详细介绍下。]]></description><category></category></item><item><title><![CDATA[由Android10适配到Android12时遇到相关编译失败问题]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/132562744</link><guid>https://blog.youkuaiyun.com/seevc/article/details/132562744</guid><author>seevc</author><pubDate>Tue, 29 Aug 2023 15:38:14 +0800</pubDate><description><![CDATA[由Android10适配到Android12时遇到相关编译失败问题]]></description><category></category></item><item><title><![CDATA[HTML基础 - 常用标签]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/131331697</link><guid>https://blog.youkuaiyun.com/seevc/article/details/131331697</guid><author>seevc</author><pubDate>Wed, 21 Jun 2023 17:46:37 +0800</pubDate><description><![CDATA[标题标签，只有h1 ~h6 这6个标题标签，字体大小依次减小。
段落标签：
2.图片标签
支持图片格式：gif、jpg、jpeg、png、bmp、webp。
属性：
：图片的资源地址，支持本地图片、网络图片；
：图片说明，当图片加载失败时会显示该内容
：用于鼠标放到图片上时显示文字；页面跳转标签：
属性：：超链接跳转地址，可以是本地路径/相对路径、url地址，若是url地址时务必添加或，否则无法正常跳转页面；
：定义超链接页面的打开方式，有以下几个值：锚点跳转即页面内部位置跳转，通过给超链接的属性设置以的方]]></description><category></category></item><item><title><![CDATA[解决Vue移动端弹窗滚动穿透]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/131251203</link><guid>https://blog.youkuaiyun.com/seevc/article/details/131251203</guid><author>seevc</author><pubDate>Fri, 16 Jun 2023 17:32:24 +0800</pubDate><description><![CDATA[在弹窗显示时，设置body的style的overflow属性值为hidden，弹窗关闭时恢复原来设置；弹窗内容滑动到底部，再向上滑动弹窗底部内容跟随滑动；弹窗内容滑动到顶部，再向下滑动弹窗底部内容跟随滑动；]]></description><category></category></item><item><title><![CDATA[HTML基础 - 基本格式]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/131251139</link><guid>https://blog.youkuaiyun.com/seevc/article/details/131251139</guid><author>seevc</author><pubDate>Fri, 16 Jun 2023 17:30:57 +0800</pubDate><description><![CDATA[笔者是一个vue小白，就在这里掉进坑里了，折腾了老半天没爬上岸，最后没办法请大佬救场，分分钟给解决。静态数据使用defaultValue没问题，但是动态加载的数据就不能这么用了。注意：v-model值不能直接使用。的方式，否则vs编辑器报错。]]></description><category></category></item><item><title><![CDATA[记首次小程序遇到坑及解决]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/129671317</link><guid>https://blog.youkuaiyun.com/seevc/article/details/129671317</guid><author>seevc</author><pubDate>Mon, 20 Mar 2023 17:05:50 +0800</pubDate><description><![CDATA[由于工作需要，首次进行微信小程序开发，从基础环境搭建到小程序发布，体验到小程序便捷的同时，也踩了不少坑，在此记录下。]]></description><category></category></item><item><title><![CDATA[浅谈android:taskAffinity属性及问题解决]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/127508235</link><guid>https://blog.youkuaiyun.com/seevc/article/details/127508235</guid><author>seevc</author><pubDate>Tue, 25 Oct 2022 10:17:57 +0800</pubDate><description><![CDATA[浅谈android:taskAffinity属性及问题解决]]></description><category></category></item><item><title><![CDATA[解决AndroidStudio编译工程长时间卡在Gradle:Build model问题]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/125051265</link><guid>https://blog.youkuaiyun.com/seevc/article/details/125051265</guid><author>seevc</author><pubDate>Mon, 30 May 2022 17:56:45 +0800</pubDate><description><![CDATA[最近两天突然原来的Android工程都长时间编译不过，最长一个编译了1天3小时55分（瞬间崩溃了）。
尝试新创建一个工程，编译也要13分钟。好像也没干啥，从gradle.properties 、build.gradle、升级gradle插件、升级Android studio和重新安装、删除gradle等等，一路各种排查试错，也没能解决，一度怀疑人生，冲动的想重装电脑了（想想肯定跟这没关系就忍住了）。
于是又继续度娘，在看到关于Android Studio gradle:build model长期执行不完的问]]></description><category></category></item><item><title><![CDATA[AndroidStudio新建工程gradle编译报Connect to repo.maven.apache.org:443问题]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/124803660</link><guid>https://blog.youkuaiyun.com/seevc/article/details/124803660</guid><author>seevc</author><pubDate>Mon, 16 May 2022 17:09:46 +0800</pubDate><description><![CDATA[Android studio新版本创建项目后项目的build.gradle配置发生了改变，allproject配置移动到settings.gradle中，用dependencyResolutionManagement替代，如下：
旧版本build.gradle：
...
allprojects {
    repositories {
        mavenCentral()
        google()
        maven { url 'http://maven.aliyun.com/ne]]></description><category></category></item><item><title><![CDATA[APK加固原理详解]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/124016007</link><guid>https://blog.youkuaiyun.com/seevc/article/details/124016007</guid><author>seevc</author><pubDate>Thu, 07 Apr 2022 14:35:41 +0800</pubDate><description><![CDATA[一、前言
之前使用的360加固，挺好用的，从2021年底的时候限制每天每个账号仅上传2次apk（免费的，不知道VIP的是不是这样）。通过这个事情，感觉技术还是掌握在自己手里稳妥点，不用受制于人，想怎么玩就怎么玩。
通过技术调研有两条路子可以走：


方式一：直接对apk进行加密，启动应用时通过壳程序去加载apk运行；


方式二：仅对原apk的dex文件进行加密，启动应用时对dex解密，通过DexClassLoader进行加载；


本文主要是参考了360免费加固的思路，所以主要研究的方式二。
二、原理
先]]></description><category></category></item><item><title><![CDATA[Jetpack Compose动画]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/123401906</link><guid>https://blog.youkuaiyun.com/seevc/article/details/123401906</guid><author>seevc</author><pubDate>Thu, 10 Mar 2022 15:03:25 +0800</pubDate><description><![CDATA[前面讲到布局基础和图像绘制，本篇来讲下Jetpack Compose动画。
介绍动画主要从下图中几点进行讲解

一、内容动画
与布局内容变化相关的几种动画，官方称之为高级别动画API。

AnimatedVisibility，实验性功能，可组合项可为内容的出现和消失添加动画效果；
AnimatedContent，实验性功能，可组合项在内容根据目标状态发生变化时，添加内容的动画效果；
AnimateContentSize，可组合项内容大小发生变化动画；
Crossfade，可组合项的淡入淡出；

Animat]]></description><category></category></item><item><title><![CDATA[Jetpack Compose之手势使用]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/123207585</link><guid>https://blog.youkuaiyun.com/seevc/article/details/123207585</guid><author>seevc</author><pubDate>Tue, 01 Mar 2022 15:39:52 +0800</pubDate><description><![CDATA[前言
在一个应用中用户的交互操作非常多，如：点击、滑动、拖动等，这些操作统统离不开手势。
在正式介绍Compose手势前，我们先来了解下Jetpack Compose手势整体框架，做到心中有图。

一、点击
这个含义都懂就不解释，实现点击采用的修饰符clickable，如下：
@Composable
private fun GestureOfClick(){
    var colorState by remember { mutableStateOf(false) }
    Box(modifier =]]></description><category></category></item><item><title><![CDATA[Kotlin函数式编程]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/123036594</link><guid>https://blog.youkuaiyun.com/seevc/article/details/123036594</guid><author>seevc</author><pubDate>Sun, 20 Feb 2022 21:45:54 +0800</pubDate><description><![CDATA[什么是函数式编程
函数式编程是于面向对象编程范式相齐名的一种编程方式，主要依赖于高阶函数返回的数据，这些高阶函数专用于处理各种集合，可方便的联合多个同类函数构建链式操作以创建复杂的计算行为。在Kotlin中支持多种编程范式，
有以下函数类别：
变换transform、过滤filter、合并combine。
变换
变换是函数式编程的第一大类函数，变换函数会遍历集合内容，用一个以值参的形式传入的变换器函数，变换每一个元素，然后返回已包含修改数据的集合并可传给链上的其他函数。
Kotlin中常见的变换函数中有ma]]></description><category></category></item><item><title><![CDATA[Kotlin关键字和操作符]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/123007645</link><guid>https://blog.youkuaiyun.com/seevc/article/details/123007645</guid><author>seevc</author><pubDate>Fri, 18 Feb 2022 17:14:42 +0800</pubDate><description><![CDATA[与Java对比，将kotlin特有的关键字排到前面。
硬关键字




关键字
含义




val
声明一个只读变量


var
声明一个可变的变量


when
开始一个when表达式，类似Java中的switch


as
用于类型转换；为导入指定一个别名


as?
用于安全类型转换


fun
声明一个函数


in
1.指定for循环中迭代的对象；2.当作中缀操作符，检测一个值所在的区间；3.将一个类型参数标记为逆变


!in
1.用作中缀表达式，检测一个值不属于一个区间


is
检测一个变]]></description><category></category></item><item><title><![CDATA[Kotlin常用标准函数]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/123007540</link><guid>https://blog.youkuaiyun.com/seevc/article/details/123007540</guid><author>seevc</author><pubDate>Fri, 18 Feb 2022 17:11:10 +0800</pubDate><description><![CDATA[1.apply函数
可看作一个配置函数，传入一个接收者，通过调用一系列函数配置它以便使用，如果给apply提供lambda表达式，则会返回配置好的接收者。apply能让每个配置函数都作用于接收者，这种行为又叫相关作用域。配置函数是针对接收者的隐式调用。
fun main() {
    var file = File("D://file.txt").apply { 
        setReadable(true)
        setWritable(true)
    }
}

2.let函数
le]]></description><category></category></item><item><title><![CDATA[Kotlin进阶 - 泛型]]></title><link>https://blog.youkuaiyun.com/seevc/article/details/123007514</link><guid>https://blog.youkuaiyun.com/seevc/article/details/123007514</guid><author>seevc</author><pubDate>Fri, 18 Feb 2022 17:10:05 +0800</pubDate><description><![CDATA[在Android开发中我们经常用到泛型，如：List、Map、Set、Adapter等，那么在Kotlin中同样支持泛型。
什么是泛型呢？
泛型：把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型。
一、Kotlin中定义泛型方式
在Kotlin中定义泛型有跟Java一样，有以下两种方式：

定义在类上
定义在函数中
定义在类上示例：

class MagicBox&lt;T&gt;(val item: T) {
    var available = false

    fun fetc]]></description><category></category></item></channel></rss>