<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[krmao]]></title><description><![CDATA[让过去成就未来]]></description><link>https://blog.youkuaiyun.com/mkr127</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mkr127]]></copyright><item><title><![CDATA[智能客服、AI工作流、语音、聊天模板]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/150439276</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/150439276</guid><author>mkr127</author><pubDate>Sat, 16 Aug 2025 09:06:51 +0800</pubDate><description><![CDATA[本文介绍了一个基于Nuxt3、Vue3和TypeScript开发的智能客服系统，代码规范整洁且高度可复用。系统集成了多项AI功能：阿里云语音识别/合成、录音工具、DIFY工作流API调用、流式AI输出等，支持多端适配（PC/移动）。特色功能包括可变高度输入框、一键换肤（含6种主题）、历史聊天记录保持定位、静音模式、文本复制/重新生成等。系统采用模块化设计，包含完整的语音交互流程和UI组件，并通过图片展示了不同终端和主题下的界面效果。]]></description><category></category></item><item><title><![CDATA[自己收藏的海姆立克高清图免费打印]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/147216970</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/147216970</guid><author>mkr127</author><pubDate>Mon, 14 Apr 2025 11:47:29 +0800</pubDate><description><![CDATA[自己收藏的海姆立克高清图免费打印下载链接]]></description><category></category></item><item><title><![CDATA[谷歌地图 DEMO]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/44222117</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/44222117</guid><author>mkr127</author><pubDate>Thu, 12 Mar 2015 15:14:48 +0800</pubDate><description><![CDATA[需要做谷歌地图,涉及到js+html,最烦了......
涉及到自动以 infowindow ,自定义 marker


研究了将近一个月,苦逼还是苦逼!]]></description><category></category></item><item><title><![CDATA[【IOS编程 02】加法器]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/41988471</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/41988471</guid><author>mkr127</author><pubDate>Wed, 17 Dec 2014 23:13:56 +0800</pubDate><description><![CDATA[每当学习一门新的语言，我最喜欢的就是先做一个加法器，因为这能使我学会操控 UI元素，以及后台逻辑运算。
...好晚啊，好冷
我先发张结果图，明天再细说]]></description><category></category></item><item><title><![CDATA[【IOS编程 01】开发环境]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/41987633</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/41987633</guid><author>mkr127</author><pubDate>Wed, 17 Dec 2014 21:39:11 +0800</pubDate><description><![CDATA[做了几年的 android 开发了，有点腻，现打算学习IOS开发。


参照 http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1418055&page=1 安装 Mac 10.9，然后通过 AppStore 在线更新到 10.9.5，只为了能用到 XCode6.1 。我先在Windows下载Mac 官网用迅雷下载了xcode_6.1.1.]]></description><category></category></item><item><title><![CDATA[TextView 设置无下划线超链接]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/40783857</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/40783857</guid><author>mkr127</author><pubDate>Tue, 04 Nov 2014 13:47:44 +0800</pubDate><description><![CDATA[// 设置无下划线超链接 start
String textStr = "13771839951;021-12345678";
text.setAutoLinkMask(Linkify.PHONE_NUMBERS);
text.setText(textStr);
Spannable s = (Spannable) text.getText();
s.setSpan(new UnderlineSpa]]></description><category></category></item><item><title><![CDATA[【Android框架进阶〖04〗】MDevil 之 网络模块 Volley]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/40377547</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/40377547</guid><author>mkr127</author><pubDate>Wed, 22 Oct 2014 16:15:31 +0800</pubDate><description><![CDATA[对于 Android 应用开发，基于网络请求的开源框架有不少，我喜欢用的就是 AsyncHttpClient，UniversalImageLoader。原想法是在框架中封装一套通用的请求与返回借口，那么以后底层不管用什么框架进行网络请求，都不会修改业务层代码，实现业务与基本功能的分离，方便后期的优化，扩展。后来跟阿里的一位朋友聊到这块，谈到android端的网络请求，觉得一款牛逼的应用，尤其的是网]]></description><category></category></item><item><title><![CDATA[【IOS编程 00】The Swift Programming Language]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/39889389</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/39889389</guid><author>mkr127</author><pubDate>Wed, 08 Oct 2014 09:01:55 +0800</pubDate><description><![CDATA[稍微看了下 Swift 语言的语法结构，与 Python 语法大致一样，迄今接触过的预压n]]></description><category></category></item><item><title><![CDATA[【数据结构与算法 03】直接插入排序]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/39320797</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/39320797</guid><author>mkr127</author><pubDate>Tue, 16 Sep 2014 18:22:02 +0800</pubDate><description><![CDATA[算法思想（从小到大排序）


将待排序数组看左右两个序列，左序列有序，有序列无序。假设第一个数array[0]为有序列，那么array[1,N-1]为无序列.循环遍历无序列，找出array[i]在有序列中应该插入的位置,插入。例如一个乱序数组为{1,3,2,4 ， 假如有序列为 { 1,3 } 无序列循环到2时 ，那么2在有序列中的位置应该是1 - 3 中间 ， 所以 [ 3. . .2 )]]></description><category></category></item><item><title><![CDATA[【数据结构与算法 02】选择排序]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/39181077</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/39181077</guid><author>mkr127</author><pubDate>Wed, 10 Sep 2014 14:56:14 +0800</pubDate><description><![CDATA[算法思想：


遍历数组array[N]，索引为 i，然后算出[i+1,N-1]区间中的最小数，与array[i]交换，最后一个数因为只有一个，所以不用比较外循环为 N-2次

import java.util.Arrays;

/***
 * @title 选择排序
 * @author michael.mao
 * @date 2014年9月10日 下午2:32:01
 * @ver]]></description><category></category></item><item><title><![CDATA[【数据结构与算法 01】冒泡排序]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/39178213</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/39178213</guid><author>mkr127</author><pubDate>Wed, 10 Sep 2014 10:37:04 +0800</pubDate><description><![CDATA[算法思想：


一共进行 array.size-1趟排序，每一趟排序，都将左右两个数进行比较大小，并且交换位置，这样的效果是：每一趟排序中，能找到最大的值冒泡到该趟排序的最后面，这样的话，第一趟排序，最后一个数是最大的，第二趟排序，倒数第二个数就是第二大的，最后一趟排序后 (因为最后一趟只有一个数，不用比较，所以比较次数是 array.size-1 趟)，将得到有序数组



imp]]></description><category></category></item><item><title><![CDATA[【数据结构与算法 00】二分插入排序]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/39153951</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/39153951</guid><author>mkr127</author><pubDate>Tue, 09 Sep 2014 11:12:25 +0800</pubDate><description><![CDATA[算法思想


从小到大排序
N1：遍历数组 array[10000], i 为数组坐标，从1开始
N2：以 i 为基数 tmpV=array[i]，[0 ，i-1] 为区间坐标，(0+i-1)/2 为 mid 坐标
N3：比较 tmpV 与 array[mid]，如果大于，则区间为 [mid+1,i-1],否则为[0,mid-1]
N4：遍历所有 i 实现以上递归步骤，直到 右坐标l]]></description><category></category></item><item><title><![CDATA[【Java服务端编程〖01〗】搭建环境第一步]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/39040479</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/39040479</guid><author>mkr127</author><pubDate>Thu, 04 Sep 2014 00:52:32 +0800</pubDate><description><![CDATA[1：安装 myeclipse

2：下载解压 tomcat7.55

3：下载解压 maven

4：配置maven

    


    


    右击项目 run as maven clean 下载必要的文件





5：新建 maven 项目 ，选择 webapp




6：加载 spring

    

pom.xml
]]></description><category></category></item><item><title><![CDATA[【Java服务端编程〖00〗】是时候开始了]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/38894431</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/38894431</guid><author>mkr127</author><pubDate>Thu, 28 Aug 2014 10:34:20 +0800</pubDate><description><![CDATA[即将开始踏上服务端编程之路，纪念一下]]></description><category></category></item><item><title><![CDATA[【Android框架进阶〖03〗】ThinkAndroid框架总结]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/20993533</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/20993533</guid><author>mkr127</author><pubDate>Tue, 11 Mar 2014 09:47:40 +0800</pubDate><description><![CDATA[/**************************************************************************************************


 *  本博客为优快云博主【MK】原创，博客地址：http://blog.youkuaiyun.com/mkrcpp/article/details/13170649

 ************]]></description><category></category></item><item><title><![CDATA[【Android框架进阶〖02〗】ThinkAndroid线程池机制]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/14166627</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/14166627</guid><author>mkr127</author><pubDate>Tue, 05 Nov 2013 15:48:23 +0800</pubDate><description><![CDATA[/**************************************************************************************************

 *  本博客为优快云博主【MK】原创，博客地址：http://blog.youkuaiyun.com/mkrcpp/article/details/13509051

 **************]]></description><category></category></item><item><title><![CDATA[【Android框架进阶〖01〗】ThinkAndroid注解机制二]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/14166121</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/14166121</guid><author>mkr127</author><pubDate>Tue, 05 Nov 2013 15:15:49 +0800</pubDate><description><![CDATA[/**************************************************************************************************

 *  本博客为优快云博主【MK】原创，博客地址：http://blog.youkuaiyun.com/mkrcpp/article/details/13509051

 **************]]></description><category></category></item><item><title><![CDATA[【Android框架进阶〖00〗】ThinkAndroid注解机制]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/13509051</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/13509051</guid><author>mkr127</author><pubDate>Tue, 29 Oct 2013 16:05:24 +0800</pubDate><description><![CDATA[由于项目需要，开始研究ThinkAndroid。
个人认为该框架的注解机制十分新颖，所以先研究这个，顺便学习下 Java 的annotation。
粗略的看了看，该机制在BaseActivity中初始化。而BaseActivity是所有Activity的基类。
对BaseActivity进行了代码剖离，发现在BaseActivity中在onCreate函数里启动注解机制。


首先注入]]></description><category></category></item><item><title><![CDATA[【Android框架进阶】我有一个愿望]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/13171587</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/13171587</guid><author>mkr127</author><pubDate>Sun, 27 Oct 2013 17:34:47 +0800</pubDate><description><![CDATA[我有一个愿望：
短期：能有一个我希望回的家
长期：有一天能达到某一门技术领域的巅峰，或者一名出色的技术总监


我还有好多愿望：
比如有一位相爱的老婆，不因没钱而看不起我，在我穷困失意时陪伴我，而不是有所成就时才看的上我的那些女人
我还希望将来不会驼背


愿望终究是愿望：
既没有绝影的才华，也没有黄晓明的帅气，没有左右逢源的气质，没有洞察商机的本领，没有丰富的人脉]]></description><category></category></item><item><title><![CDATA[【Android基础入门〖19〗】ExpandableListView酷我音乐界面的下拉菜单]]></title><link>https://blog.youkuaiyun.com/mkr127/article/details/13170649</link><guid>https://blog.youkuaiyun.com/mkr127/article/details/13170649</guid><author>mkr127</author><pubDate>Sun, 27 Oct 2013 16:04:11 +0800</pubDate><description><![CDATA[搞了一夜，终于完毕。
有一种成就感，虽然没什么成就......
本以为那种下拉菜单方式是通过嵌套 ExpandableListView 搞定，甚是麻烦，最后因为子 ExpandableListView  的布局总是莫名其妙的多一点而止步。
无奈之下，突然意识到我钻了牛角尖，这是好事 :)


点睛之笔：
用一个 ExpandableListView ，在其 Child 布局中设置好功]]></description><category></category></item></channel></rss>