<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u014736095的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014736095</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014736095]]></copyright><item><title><![CDATA[前端Web3开发者的出路——财富密码]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/135133596</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/135133596</guid><author>u014736095</author><pubDate>Thu, 21 Dec 2023 16:12:47 +0800</pubDate><description><![CDATA[存粹传统的web外包不好接，虽然dapp现在的开发者也逐渐多起来了，但是相对于传统的app或者web项目，还是有一定的优势的。但是要注意对项目的筛选，价格再高也不能丢了自己作为良好市民的底线，拒绝一切与黄赌毒有关系的项目，拒绝诈骗类项目，合理规避风险和不能跨越道德和法律的底线。没有回不了款的风险，稳定来源，这是最理想的方式，但是需要点运气。如果想加入一个靠谱的团队，可以私信我，深耕技术多年，也积累了点人脉，可以帮你推荐一下。注意：你得有这方面需求的朋友，而且信得过，毕竟做完项目不给钱的很多。]]></description><category></category></item><item><title><![CDATA[python脚本打包apk-上传到内测平台-企业微信通知]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/126947138</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/126947138</guid><author>u014736095</author><pubDate>Tue, 20 Sep 2022 11:38:27 +0800</pubDate><description><![CDATA[python脚本完成Android项目打包apk，然后上传到服务器或者上传到fir，最后在企业微信发送消息]]></description><category></category></item><item><title><![CDATA[【Flutter混合开发踩坑日记之‘applicationVariants‘ for extension ‘android‘】]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/126451976</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/126451976</guid><author>u014736095</author><pubDate>Sun, 21 Aug 2022 16:58:53 +0800</pubDate><description><![CDATA[Could not get unknown property 'applicationVariants' for extension 'android' of type com.android.build.gradle.LibraryExtension.]]></description><category></category></item><item><title><![CDATA[关于build.gradle中的packagingOptions配置参数]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/120651416</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/120651416</guid><author>u014736095</author><pubDate>Fri, 08 Oct 2021 14:53:24 +0800</pubDate><description><![CDATA[关于build.gradle中的packagingOptions配置参数使用方法1. exclude2. pickFirst3. doNotStrip4. merge引入库少配置该参数出现的问题问题解决
本文一来带大家了解一下这个配置参数使用方法，二来说说这个配置参数会引起哪些问题。
使用方法
packagingOptions常见的设置项有exclude、pickFirst、doNotStrip、merge。
1. exclude
过滤掉某些文件或者目录不添加到APK中，作用于APK，不能过滤aar和jar]]></description><category></category></item><item><title><![CDATA[Android进阶之路-自定义ButterKnife（中）]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/118442650</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/118442650</guid><author>u014736095</author><pubDate>Sat, 03 Jul 2021 22:37:02 +0800</pubDate><description><![CDATA[众所周知，android项目通过gradle构建工具编译打包的时候，会执行很多task任务。大致会经历以下几个阶段

**.java文件-->.class文件-->.dex文件-->.apk文件**

ButterKnife的原理就是编译的时候动态生成XXX$ViewBinder类，在我们调用BufferKnife.bind(this)的时候，通过动态的类加载方式创建出这个ViewBinder类的实例，并且调用bind()方法完成给带有注解的对象进行id绑定的操作。]]></description><category></category></item><item><title><![CDATA[Android进阶之路-自定义ButterKnife（下）]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/118446235</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/118446235</guid><author>u014736095</author><pubDate>Sat, 03 Jul 2021 22:36:17 +0800</pubDate><description><![CDATA[Android进阶之路-自定义ButterKnife（下）

]]></description><category></category></item><item><title><![CDATA[Android Profile 检测结果分析详解$是什么意思]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/115009768</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/115009768</guid><author>u014736095</author><pubDate>Fri, 19 Mar 2021 17:02:34 +0800</pubDate><description><![CDATA[众所周知，Android profile工具可以进行内存分析。网上也有很多文章介绍，例如：https://www.jianshu.com/p/e75680772375

但是你真的清楚分析报告的每个字段的意义么？就问一个简单的，如下图的VerticalTextSwitcher$1是什么意思？不知道就往下看。





XXXX$1，XXXX$2...表示XXXX类里的内部类，右键jump to source能够直接定位到代码中具体的内部类位置。如果重新定义一个类来继承内部类，就有了名字，如下





..]]></description><category></category></item><item><title><![CDATA[scrapy入门——实战爬取doxmark信息]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/103856411</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/103856411</guid><author>u014736095</author><pubDate>Mon, 06 Jan 2020 15:10:24 +0800</pubDate><description><![CDATA[在此以前我们学会了使用urllib来实现简单的爬虫文件爬取网络信息！但是这还远远不够的。

Scrapy是一个Python的爬虫框架，使用scrapy可以提高开发效率，并且非常适合做一些中大型的爬虫项目。提高稳定性。

scrapy安装

1、升级pip：python -m pip install --upgrade pip

2、安装wheel：pip install wheel

3、安装lx...]]></description><category></category></item><item><title><![CDATA[Android高级开发进阶之路4——增量更新（bsdiff,bspatch,bzip,ndk）]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/102574914</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/102574914</guid><author>u014736095</author><pubDate>Wed, 16 Oct 2019 19:55:33 +0800</pubDate><description><![CDATA[目录



增量更新

介绍

效果

步骤

总结

增量更新

最近换了个新手机，号称2019年的android机皇一加7plus。面对这90z的屏幕，原本不玩游戏的我也入了王者农药的坑！不过很少玩，所以基本上每次玩都要下载补丁更新才能玩。今天我们就来讲一下Android应用的增量更新。

介绍

优点：

   节省用户更新新版本的流量、时间、内存空间。

基本流程如下：

app...]]></description><category></category></item><item><title><![CDATA[Android开发模式万佛朝中MVX（MVC、MVP、MVVM）]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/102389708</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/102389708</guid><author>u014736095</author><pubDate>Tue, 08 Oct 2019 18:05:42 +0800</pubDate><description><![CDATA[今天公司的测试服务器开小差了，后台被吐槽的体无完肤，虽然我们都知道跟他没有什么关系，但是生活需要乐趣，总要有人背锅，哈哈！~~~暂时没有环境开发了，那就分享一下之前做的一篇关于Android开发模式的总结，MVC，MVP，MVVM对于刚了解或者没有好好归纳总结的朋友来说，特别是那些像我记性很差的朋友来说，很容易忘记。

下面我们一起归纳总结一下，这样屡清楚他们的关系我们用起来就可以迎刃有余，也不会...]]></description><category></category></item><item><title><![CDATA[Android高级开发进阶之路3——动态换肤（监听xml布局初始化，动态加载类，加载插件资源文件）]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/102335048</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/102335048</guid><author>u014736095</author><pubDate>Tue, 08 Oct 2019 08:45:46 +0800</pubDate><description><![CDATA[动态换肤（监听xml布局初始化，动态加载类，加载插件资源文件）



一般小公司是不会接触到换肤的，尤其是动态下载皮肤插件来实现换肤。那么，今天我们来一探究竟。如何实现加载从网上下载的皮肤插件，并且替换到相应的控件中！

大致涉及到4个步骤：

1、下载皮肤插件（通常为apk，后期用skin.apk来表示皮肤插件）到本地

2、根据皮肤插件skin.apk的绝对路径，加载插件里的资源文件

3、准...]]></description><category></category></item><item><title><![CDATA[Android高级开发进阶之路2——手写butterknife（注解，注解处理器，类加载器）]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/100166918</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/100166918</guid><author>u014736095</author><pubDate>Fri, 30 Aug 2019 23:36:17 +0800</pubDate><description><![CDATA[Android高级开发进阶之路2——手写butterknife（注解，注解处理器，类加载器）



首先我们来简单讲讲ButterKnife的工作过程：

引入库：


compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

使用：
...]]></description><category></category></item><item><title><![CDATA[Android高级开发进阶之路1——自定义控件（Canvas，Paint，贝塞尔曲线）]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/100136091</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/100136091</guid><author>u014736095</author><pubDate>Fri, 30 Aug 2019 13:49:10 +0800</pubDate><description><![CDATA[自定义View（Canvas，Paint，贝塞尔曲线）

目录

自定义View（Canvas，Paint，贝塞尔曲线）

在Canvas上绘制圆，利用Bitmap保存起来

在路径上，依次绘制圆，形成画线动画

同时绘制多条路径

在Android应用层来说，众所周知，自定义一个View，需要经过测量，布局，绘制三个步骤。每个步骤深入将都可以写成长篇大论。今天我们主要了解的是onDraw绘制的部...]]></description><category></category></item><item><title><![CDATA[Android录制gif（Adb命令录制+FFmpeg命令转换格式）脚本效果更佳]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/100152855</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/100152855</guid><author>u014736095</author><pubDate>Fri, 30 Aug 2019 11:00:04 +0800</pubDate><description><![CDATA[因为一直需要将Android手机上的效果录制下来，转成gif，然后上传到博客上。
原来都需要手动操作好几次，所以索性的写了一个脚本来配合使用。

环境准备

FFmpeg下载
	去官网下载地址下载好，解压就可以了。
	adb下载
	需要下载AndroidSDK。因为笔者下载了Android Studio,帮忙下好SDK。所以就不过多描述了。
脚本书写

关键的几个指令

0.adb截屏


...]]></description><category></category></item><item><title><![CDATA[string too large to encode using UTF-8 written instead as 'STRING_TOO_LARGE'.]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/97271601</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/97271601</guid><author>u014736095</author><pubDate>Thu, 25 Jul 2019 16:57:01 +0800</pubDate><description><![CDATA[为了提高构建速度，按照android 官方的建议如下，

改进您的构建速度的一般过程如下所示：

采取一些可以立即为大多数 Android Studio 项目带来好处的措施，优化您的构建配置。
	分析您的构建，确定并诊断一些对您的项目或工作站来说比较棘手的瓶颈。
升级版本后，安卓构建项目的时候遇到


error: string too large to encode using UTF-8 wr...]]></description><category></category></item><item><title><![CDATA[Android Jetpacket套件之LiveData+ViewModel]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/86242020</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/86242020</guid><author>u014736095</author><pubDate>Wed, 10 Jul 2019 14:55:08 +0800</pubDate><description><![CDATA[Android Jetpacket套件之LiveData+ViewModel

最近很火的一个mvvm模式开发，其实原来2017年以前就有databinding的模式了。2018年的i/o大会Google推出的这个全家桶，让开发变得更加简单。一般新的东西到成熟估计还要2,3年吧，八卦的我怎么安奈得住，直接教程吧。





好处：数据驱动模式（也就是数据有变化会驱动界面刷新），解耦性强。团队开发...]]></description><category></category></item><item><title><![CDATA[Android如何构建自己的库在build.gradle中引用-教程+跳坑]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/93969310</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/93969310</guid><author>u014736095</author><pubDate>Fri, 28 Jun 2019 11:08:56 +0800</pubDate><description><![CDATA[开发Android也有一定的年头的，承蒙大神们通过不懈的努力带给我们众多的便利！或许也到自己贡献的时候了，那么我们先学习一下如何构建自己的库，并且在gradle中的引用！

步骤

前期准备：

新建一个project，提交到github上面去









创建lib的module

这个module里的代码就是别人可以引用的代码



创建你分享的代码，例如下图



在github上...]]></description><category></category></item><item><title><![CDATA[Android Jetpack套件之Navigation导航组件]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/93753613</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/93753613</guid><author>u014736095</author><pubDate>Wed, 26 Jun 2019 18:14:56 +0800</pubDate><description><![CDATA[首先记录一个坑：no current navigation node


06-26 14:42:25.787 25913-25913/com.bluetree.bytepay2 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.bluetree.bytepay2, PID: 25913
    java.lang.IllegalSt...]]></description><category></category></item><item><title><![CDATA[Android Jetpack套件之Paging分页组件]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/93193934</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/93193934</guid><author>u014736095</author><pubDate>Sat, 22 Jun 2019 00:07:30 +0800</pubDate><description><![CDATA[Google 2018 I/O大会上，Google正式推出了AndroidJetpack——这是一套组件、工具和指导，可以帮助开发者构建出色的 Android 应用。架构组件可帮助您设计稳健、可测试且易维护的应用。


	数据绑定

	以声明方式将可观察数据绑定到界面元素
	
	
	Lifecycles

	管理您的 Activity 和 Fragment 生命周期
	
	
	LiveData
...]]></description><category></category></item><item><title><![CDATA[初探Arouter框架]]></title><link>https://blog.youkuaiyun.com/u014736095/article/details/91356905</link><guid>https://blog.youkuaiyun.com/u014736095/article/details/91356905</guid><author>u014736095</author><pubDate>Tue, 11 Jun 2019 00:41:43 +0800</pubDate><description><![CDATA[学习Arouter框架



最近公司需要重构项目，需要用到jecket page和Arouter框架。利用一晚上的时间将这两个东西快速地学习一下。

·首先是Arouter

ARouter官方地址：https://github.com/alibaba/ARouter/blob/master/README_CN.md



背景

传统的Activity页面跳转有两种方式，一种是显示跳...]]></description><category></category></item></channel></rss>