<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java521666的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java521666</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java521666]]></copyright><item><title><![CDATA[git创建一个本地分支，并从远程分支拉取代码]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/131658678</link><guid>https://blog.youkuaiyun.com/java521666/article/details/131658678</guid><author>java521666</author><pubDate>Tue, 11 Jul 2023 14:04:06 +0800</pubDate><description><![CDATA[Git 是一种分布式版本控制系统，广泛用于管理项目的源代码。它可以追踪文件的修改、记录历史变更、协调多人合作开发，并提供了回滚、分支管理、合并等功能。现在，你已经成功创建了一个本地分支，并从远程分支拉取了代码。你可以在本地分支上进行修改和提交，并根据需要将更改推送到远程仓库。记得在推送到远程仓库之前进行代码审查和测试。]]></description><category></category></item><item><title><![CDATA[Git上传代码到远程仓库]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/131658514</link><guid>https://blog.youkuaiyun.com/java521666/article/details/131658514</guid><author>java521666</author><pubDate>Tue, 11 Jul 2023 13:59:32 +0800</pubDate><description><![CDATA[这些是基本的提交代码的步骤。在实际使用中，可能还会涉及解决冲突、分支切换等操作。提前备份重要数据，并确保你了解将代码提交到什么地方以及可能带来的影响。]]></description><category></category></item><item><title><![CDATA[Unsupported Java. Your build is currently configured to use Java 17.0.6 and Gradle 7.0.2.]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/131517459</link><guid>https://blog.youkuaiyun.com/java521666/article/details/131517459</guid><author>java521666</author><pubDate>Mon, 03 Jul 2023 16:14:05 +0800</pubDate><description><![CDATA[导入别人项目时出现的bug，提示java环境版本和Gradle版本不匹配。]]></description><category></category></item><item><title><![CDATA[Activity启动流程分析]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126607351</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126607351</guid><author>java521666</author><pubDate>Tue, 30 Aug 2022 16:48:08 +0800</pubDate><description><![CDATA[简单点来说就是通过AMS代理类，封装创建Activity的信息，然后回调给ActivityThread，通过mInstrumentation创建Activity，调用onCreate方法启动Activity。隐式Intent是通过在AndroidManifest文件中设置action、data、category，让系统来筛选出合适的Activity。2、setComponent(componentName)方法。1、构造方法传入Component，最常用的方式。...]]></description><category></category></item><item><title><![CDATA[activity启动模式介绍]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126603641</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126603641</guid><author>java521666</author><pubDate>Tue, 30 Aug 2022 15:03:43 +0800</pubDate><description><![CDATA[如果要启动的Activity已经存在于它想要归属的栈中，那么不会创建该Activity实例，将栈中位于该Activity上的所有的Activity出栈，同时该Activity的onNewIntent()方法会被调用。如果要启动的Activity已经在栈顶，则不会重新创建Activity，只会调用该该Activity的onNewIntent()方法。程序模块逻辑入口：主页面、WebView页面、扫一扫页面、购物界面、确认订单界面、付款界面。来电显示、呼叫界面、锁屏等。...]]></description><category></category></item><item><title><![CDATA[Activity生命周期看这一篇足够了]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126598687</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126598687</guid><author>java521666</author><pubDate>Tue, 30 Aug 2022 11:55:44 +0800</pubDate><description><![CDATA[android学习中，Activity是非常重要的一部分，接下来进行activity生命周期的讲解和具体的应用。]]></description><category></category></item><item><title><![CDATA[Retrofit的使用及原理详解]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126152936</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126152936</guid><author>java521666</author><pubDate>Thu, 04 Aug 2022 10:00:20 +0800</pubDate><description><![CDATA[retrofit—>建造者—>create(动态代理)—>getPersonInfo接口（注解解析+URL拼接）到invoke方法中—>call.enqueue(丢给okHttp，realCall—>AsyncCall内部类，切到子线程)—> ExecutorCallAdapterFactory中返回数据的enqueue()方法（切回主线程callbackExecutor.execute()）...]]></description><category></category></item><item><title><![CDATA[android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126146080</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126146080</guid><author>java521666</author><pubDate>Wed, 03 Aug 2022 18:05:48 +0800</pubDate><description><![CDATA[开启一个新界面时，出现的错误，这是由于使用到了。方法时，会受到限制，需要开启一个新的task。]]></description><category></category></item><item><title><![CDATA[android.content.res.Resources$NotFoundException: String resource ID #0x1解决方案]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126145855</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126145855</guid><author>java521666</author><pubDate>Wed, 03 Aug 2022 17:56:57 +0800</pubDate><description><![CDATA[Android Studio爆红：
android.content.res.Resources$NotFoundException: String resource ID #0x1
这是由于DataBinding进行双向绑定时只允许String类型，当要传入Int类型时需要进行转换代码如下：
这个问题在setText时传值也会经常遇到，要传String类型的数据...]]></description><category></category></item><item><title><![CDATA[MVC，MVP和MVVM架构解析]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126054377</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126054377</guid><author>java521666</author><pubDate>Fri, 29 Jul 2022 14:28:32 +0800</pubDate><description><![CDATA[1.使得M,V,VM的解耦更加彻底，在mvp模式中，p需要持有V的引用，才能去刷新UI，在MVVM模式中，View和Model使用databingding进行双向绑定，一方改变会直接通知另外一方，使得viewModel能专注于业务逻辑的处理，而不需要去关心UI刷新。客户端开发最常用的重用时View，但是数据双向绑定技术，让你在一个View都绑定了一个model，不同模块的model都不同，那就不能简单重用View了。项目结构更加低耦合。1.解耦，区别于MVC不会产生巨量代码，区别于MVP不会产生大量接口。.]]></description><category></category></item><item><title><![CDATA[Android优化之启动优化和黑白屏优化]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126052350</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126052350</guid><author>java521666</author><pubDate>Fri, 29 Jul 2022 11:59:25 +0800</pubDate><description><![CDATA[开机—>BootLoader(引导芯片)—>Linux(init,rc)—>init进程(id=1)—>zygote进程—>JVM，SystemServer等—>ActivityManagerService，SystemServerManager，Binder（线程池）—>launcher（app）黑白屏优化主要体现在视觉上的优化，通常我们会加一个启动页来填充我们启动的时间。主要有一个启动的background和一个右上角的跳过按钮。启动后立即为该app显示一个空白窗口（白屏）加载布局，绘制（替换白屏）..]]></description><category></category></item><item><title><![CDATA[svg图片实战：自定义view打造中国地图]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126050653</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126050653</guid><author>java521666</author><pubDate>Fri, 29 Jul 2022 11:28:46 +0800</pubDate><description><![CDATA[1、SVG 指可伸缩矢量图形
2、SVG 用来定义用于网络的基于矢量的图形
3、SVG 使用 XML 格式定义图形
4、SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失与其他图像格式相比，使用 SVG 的优势在于：
1、SVG 可被非常多的工具读取和修改（比如记事本）
2、SVG 与 JPEG 和 GIF 图像比起来，尺寸更小，且可压缩性更强。
3、SVG 是可伸缩的
4、SVG 图像可在任何的分辨率下被高质量地打印
5、SVG 可在图像质量不下降的情况下被放大
6、SVG 图像中的文本是可选的，]]></description><category></category></item><item><title><![CDATA[Jetpack中各个组件简介]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126037009</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126037009</guid><author>java521666</author><pubDate>Thu, 28 Jul 2022 16:52:54 +0800</pubDate><description><![CDATA[Jetpack是当下最火的组件了，Google官方大力推荐，其好用，性能优异受到很多开发者的喜爱，接下来我们将简单了解一下Jetpack中各个组件，以后会发文章单独详细讲解。]]></description><category></category></item><item><title><![CDATA[kotlin语法总结（二）]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126028056</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126028056</guid><author>java521666</author><pubDate>Thu, 28 Jul 2022 09:53:19 +0800</pubDate><description><![CDATA[这章接着上一章语法总结继续讲解，主要讲kotlin和java不一样的地方（40）嵌套类（41）数据类dataclass提供toString，equals，hashCode个性化实现，==符号比较值，为每个属性生成operator修饰的componentN()方法，支持解构，生成copy方法，方便对象复制Int){//解构val(x,y)=playerScore(1,2)println(x)println(y)}数据类必须有至少一个参数数的主构造函数Int){变换。...]]></description><category></category></item><item><title><![CDATA[kotlin语法总结（一）]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/126027912</link><guid>https://blog.youkuaiyun.com/java521666/article/details/126027912</guid><author>java521666</author><pubDate>Thu, 28 Jul 2022 09:42:33 +0800</pubDate><description><![CDATA[接下来几章将总结一下kotlin的语法，总结kotlin和java不一样的地方（1）var可修改、val只读（类型推断）、constvala=1（编译时常量）（2）kotlin只提供引用数据类型，会在字节码中变成基本书记类型//等于3为少儿in0..3->println("shaoer")in3..12->println("11")else->{$art（4）String模板“Answer$b”，可带变量Int)String{}valble$......]]></description><category></category></item><item><title><![CDATA[自定义ViewGroup实现搜索栏历史记录流式布局]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/125991392</link><guid>https://blog.youkuaiyun.com/java521666/article/details/125991392</guid><author>java521666</author><pubDate>Tue, 26 Jul 2022 18:43:37 +0800</pubDate><description><![CDATA[自定义view和viewGroup是Android中重要的组成部分，自定义view只要在方法中实现，需要判断大小是会用到方法，而自定义viewGroup主要用到方法和方法UI绘制流程中：1、onMeasure()measure()方法被final修饰不可重写，onMeasure()可重写父view重写onMeasure()方法，调用子view的measure()方法，子view的measure()方法调用子view的onMeasure()方法，以此递归每个view的onMeasure()方法最终调用setM]]></description><category></category></item><item><title><![CDATA[Glide中图片处理]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/125990714</link><guid>https://blog.youkuaiyun.com/java521666/article/details/125990714</guid><author>java521666</author><pubDate>Tue, 26 Jul 2022 11:19:44 +0800</pubDate><description><![CDATA[其实Glide加载本地图片和加载网络图片调用的方法是一样的,唯一的区别是说加载SD卡的图片需要SD卡的权限,加载网络需要网络权限。需要实现两个方法,其中transform方法里面能拿到bitmap对象,这里就是对图片做处理的地方。transform方法是不支持多次调用的,如果你调用了两次,那么第二次的会覆盖了第一次的效果。如果你希望加载的只是gif,如果不是gif就显示错误图片,那么只用加上asGif方法。但是他有一个重载的方法可以传入多个对象,这样传入的变形器都能够生效。直接放file文件进去。...]]></description><category></category></item><item><title><![CDATA[Android中图片的裁剪与压缩]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/125988289</link><guid>https://blog.youkuaiyun.com/java521666/article/details/125988289</guid><author>java521666</author><pubDate>Tue, 26 Jul 2022 09:53:57 +0800</pubDate><description><![CDATA[1)matrix不缩放,图片与控件左上角对齐,当图片大小超过控件时将被裁剪(2)center不缩放,图片与控件中心点对齐,当图片大小超过控件时将被裁剪以完整显示图片为目标,不剪裁,当显示不下的时候将缩放,能够显示的情况下不缩放以填满整个控件为目标,等比缩放,超过控件时将被裁剪(宽高都要填满,所以只要图片宽高比与控件宽高比不同时,一定会被剪裁)(5)fitCenter(默认)...]]></description><category></category></item><item><title><![CDATA[gradle脚本中groovy语法讲解]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/125973395</link><guid>https://blog.youkuaiyun.com/java521666/article/details/125973395</guid><author>java521666</author><pubDate>Mon, 25 Jul 2022 13:46:55 +0800</pubDate><description><![CDATA[a+b//gradle默认将最后一行非空行(有代码行)作为结果返回}//groovy没有私有这一说classStudent{]]></description><category></category></item><item><title><![CDATA[Glide使用及原理分析]]></title><link>https://blog.youkuaiyun.com/java521666/article/details/125968974</link><guid>https://blog.youkuaiyun.com/java521666/article/details/125968974</guid><author>java521666</author><pubDate>Mon, 25 Jul 2022 10:35:13 +0800</pubDate><description><![CDATA[Glide是一款非常好用的图片加载框架那么它具体好用在哪里呢？总所周知，在android开发中有几大令人头疼的问题，比如内存泄漏，线程问题，生命周期，这些问题在Glide的身上都不需要关心，下面就具体来介绍一下Glide的使用及原理吧。httpshttpshttpshttps。...]]></description><category></category></item></channel></rss>