<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[学习记录]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Maynodie</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Maynodie]]></copyright><item><title><![CDATA[Jetpack系列(五) -- DataBinding]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/133205033</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/133205033</guid><author>Maynodie</author><pubDate>Sat, 23 Sep 2023 14:11:16 +0800</pubDate><description><![CDATA[这节主要讲述的DataBinding的基本用法，包括单向绑定、双向绑定以及点击监听绑定。
当然，DataBinding 能实现的功能远不止于此，关于 DataBinding 的进阶用法，可以查阅相关资料。后续我也会再写一个关于jetpack进阶用法的专栏。]]></description><category></category></item><item><title><![CDATA[Jetpack系列(四) -- ViewBinding]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132959812</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132959812</guid><author>Maynodie</author><pubDate>Mon, 18 Sep 2023 00:28:00 +0800</pubDate><description><![CDATA[ViewBinding，一个用来替代 findViewById 的组件。它简单，好用且常用。本文较为详细地介绍了 ViewBinding 组件的使用。讲述了基础使用和使用优化，对于不同的使用场景也有提及。]]></description><category></category></item><item><title><![CDATA[Jetpack系列(三) -- LiveData]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132955812</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132955812</guid><author>Maynodie</author><pubDate>Sun, 17 Sep 2023 22:12:59 +0800</pubDate><description><![CDATA[LiveData 一般都定义在 ViewModel 中，作为可观察数据，它具有生命周期感知的能力，可以确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。]]></description><category></category></item><item><title><![CDATA[Jetpack系列(二) -- ViewModel]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132842773</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132842773</guid><author>Maynodie</author><pubDate>Tue, 12 Sep 2023 23:08:27 +0800</pubDate><description><![CDATA[本篇主要根据选读书籍来学习Jetpack的ViewModel组件，而并非学习MVVM框架
时间: 23/09/12版本: Giraffe 2022.3.1         JDK:17         开发语言: KotlinGradle版本: 8.0         Gradle plugin Version: 8.1.1。]]></description><category></category></item><item><title><![CDATA[Jetpack系列(一) -- Lifecycle]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132778401</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132778401</guid><author>Maynodie</author><pubDate>Sat, 09 Sep 2023 15:49:06 +0800</pubDate><description><![CDATA[选读书籍–《Android Jetpack开发 原理解析与应用实战》—— 著: 黄林晴这系列主要为是初步学习jetpack开发所写，不仅是加深映像，也希望给自己更多的启发。这个系列一周会至少发布一篇(工作原因)，读者也可以来监督我(可享私信催更)。本篇时间: 23/09/09版本: Giraffe 2022.3.1         JDK:17         开发语言: Kotlin初步认识Lifecycle的使用，也了解了Android使用Lifecycle的重要性。]]></description><category></category></item><item><title><![CDATA[Android Studio模拟器启动后 闪烁]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132770035</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132770035</guid><author>Maynodie</author><pubDate>Sat, 09 Sep 2023 02:04:01 +0800</pubDate><description><![CDATA[大概率是虚拟机图形绘制与电脑不匹配或不兼容。2. 在图形选项选择软件模拟。1.使用x86 镜像。]]></description><category></category></item><item><title><![CDATA[Android12 源码分析 SystemUI 学习(4) --- Notification(2/2)]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132537280</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132537280</guid><author>Maynodie</author><pubDate>Mon, 28 Aug 2023 13:51:54 +0800</pubDate><description><![CDATA[通知和状态栏的启动流程和一些数据上的操作在Android10、11、12上有些比较大的改动。因此在分析这些代码时，不能完全依赖网络上的文章来总结源码的结构。在分支上，通知分析从 notify 方法开始，使用到服务、线程通信、进程通信等，最终在中进行了视图的填充。这篇文章只是浅析了一下通知的显示，结合前一篇文章通知栏组件的创建，对于通知相关的组件有了一定的了解。篇幅问题，通知的获取(通过 Binder 从其它进程拿到信息)、通知的分类排序，就不做分析，后续有机会在深究。]]></description><category></category></item><item><title><![CDATA[Android12 源码分析 SystemUI 学习(3) --- Notification(1/2)]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132532185</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132532185</guid><author>Maynodie</author><pubDate>Mon, 28 Aug 2023 09:32:57 +0800</pubDate><description><![CDATA[如果说StatusBar是代码最多最重要的一个，那Notification是使用最多，最广泛的一个。这节主要讲通知栏相关]]></description><category></category></item><item><title><![CDATA[Android12 源码分析 SystemUI 学习(2) --- StatusBar]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132341381</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132341381</guid><author>Maynodie</author><pubDate>Thu, 17 Aug 2023 15:06:12 +0800</pubDate><description><![CDATA[SystemUI启动后，会通过资源文件启动相关的组件服务，其中就包含了StatusBar。StatusBar启动后，在start()方法中创建和添加窗口，然后构建StatusBar视图、填充StatusBar视图。而后实例化，再通过添加视图给WindowManager。系统状态栏StatusBar的创建流程版本android-12.1.0_r8。]]></description><category></category></item><item><title><![CDATA[Android12 源码分析 SystemUI 学习(1) --- SystemUI启动流程]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/132295397</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/132295397</guid><author>Maynodie</author><pubDate>Tue, 15 Aug 2023 11:29:35 +0800</pubDate><description><![CDATA[SystemUI是一个persistent应用，它由操作系统启动，主要流程为Android系统在开机后会创建进程，它会启动各种系统所需要的服务，其中就包括。启动后进入到应用层SystemUI中，在它首先会初始化监听等通知，待系统完成启动后会通知各个组件。在进入中依然执行的中的方法启动所有SystemUI中的组件。最终的服务启动逻辑都是在里面，并且都保存在mServices数组中。SystemUI 开发之启动流程Zygote相关Android源码在线。]]></description><category></category></item><item><title><![CDATA[使用RecyclerView，实现列表左滑菜单]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/126000367</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/126000367</guid><author>Maynodie</author><pubDate>Tue, 26 Jul 2022 18:27:29 +0800</pubDate><description><![CDATA[RecyclerView实现左滑菜单栏。AndroidStudio版本2021.2.1，Gradlegradle-7.3.3-bin.zipgradleplugins版本7.2.1。本来想用kotlin写的，但是公司要求使用Java进行编写，所以我又很开心地拿起了Java。虽然Kotlin很优秀，我很喜欢，但是谁会和钱过不去呢？作者声明这是篇半原创blog。可以直接添加依赖使用。...]]></description><category></category></item><item><title><![CDATA[Android AlarmManage+BroadcastReceiver+Service通知栏实现推送（后台被清也能实现）Kotlin]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/125826883</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/125826883</guid><author>Maynodie</author><pubDate>Sun, 17 Jul 2022 00:15:34 +0800</pubDate><description><![CDATA[Android AlarmManage+BroadcastReceiver+Service通知栏实现推送（后台被清也能实现）Kotlin
最近写软件碰到一个问题——消息推送，还是那种不需要挂在后台就能实现推送效果的功能。
直接看代码吧。]]></description><category></category></item><item><title><![CDATA[android使用android-crop实现任意比例的图片裁剪]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/124388553</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/124388553</guid><author>Maynodie</author><pubDate>Sun, 24 Apr 2022 18:54:13 +0800</pubDate><description><![CDATA[1. 序言

1. 需求

毕设是关于翻译的一个Android app，这就包含了图片的翻译，虽然我使用的是有道智云的翻译API，但是Android端对于图片的预处理还是要自己来实现。前面我也写道过利用Android自带的裁剪功能实现简易的图片裁剪，文章地址，但是对于任意比例这个要求，还是小巫见大巫，没什么实质性的作用。

2. 环境

Android studio2021.1.1，Android 11，语言用的Kotlin。

秉着我可以不用，但是我不能不会的想法，我花了1天的时间看了郭霖...]]></description><category></category></item><item><title><![CDATA[Android解决fragment来回切换重新实例化问题]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/124244142</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/124244142</guid><author>Maynodie</author><pubDate>Mon, 18 Apr 2022 11:15:59 +0800</pubDate><description><![CDATA[1. 关于Android studio新建的Bottom Navigation Activity

AndroidStudio自带的生成的Navigation控制fragment的转换是直接使用的replace()方法，这会使每次点击底部的按钮都会重新实例化一个fragment，无论是跳转到其它fragment还是点击当前fragment对应的按钮。

而要使fragment不被回收并重新实例化，需要使用hide()和show()方法，具体实现下文。

2. 解决思路

首先在MainActivity实例化]]></description><category></category></item><item><title><![CDATA[Adroid11，拍照，裁剪以及保存图片]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/124100038</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/124100038</guid><author>Maynodie</author><pubDate>Mon, 11 Apr 2022 17:17:26 +0800</pubDate><description><![CDATA[完成毕业设计的需要，Android11要求实现图片拍照并裁剪，例如头像的选取。真机redmi k20；Android studio2021.1.1 java编程。

1. 文件权限问题

这是Android11在拍照裁剪最大的问题。Android11对app存储权限设置了分区，app默认只能访问自己app内的文件，而公共区域的文件则需要添加provider来支持访问，而其他app内部的文件访问权限则需要目的app开启权限，一般情况下都无法访问其他app的私有文件。

我当前实现的拍照及裁剪都是Android]]></description><category></category></item><item><title><![CDATA[有道智云翻译API + retrofit实现在线翻译Android app]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/122750999</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/122750999</guid><author>Maynodie</author><pubDate>Sun, 30 Jan 2022 12:10:34 +0800</pubDate><description><![CDATA[目录



1.进入有道智云主页，注册自己的账号(手机号验证码)，完善信息随意填

2.登录进来后，创建应用。根据需要选择语言翻译服务。

3.打开Android Studio，新建空的Activity项目

1.新建项目，在build.gradle(app)添加retrofit依赖

2. 打开有道云文本翻译API接入文档，找到json文件示例

3.新建一个接口类，获取json文件

4.新建一个接口实现类来获取Call&lt;&gt;

5.更改activity_main.xml布局文件

...]]></description><category></category></item><item><title><![CDATA[IDEA打包Springboot项目，运行]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/122637878</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/122637878</guid><author>Maynodie</author><pubDate>Sat, 22 Jan 2022 15:29:09 +0800</pubDate><description><![CDATA[IDEA打包Springboot项目，运行]]></description><category></category></item><item><title><![CDATA[Invalid bound statement (not found): com.example.demo1.mapper.UserMapper.XXX]]></title><link>https://blog.youkuaiyun.com/Maynodie/article/details/122587788</link><guid>https://blog.youkuaiyun.com/Maynodie/article/details/122587788</guid><author>Maynodie</author><pubDate>Wed, 19 Jan 2022 19:26:12 +0800</pubDate><description><![CDATA[在使用spring boot+mybatis时，报标题的错误。
在csdn上看了好几篇都是差不多的说法，但是一直没改对。下面是常见几种问题。]]></description><category></category></item></channel></rss>