<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[树懒的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shangming150</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shangming150]]></copyright><item><title><![CDATA[springboot打包发布jar到阿里云的window server服务器]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/89444964</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/89444964</guid><author>shangming150</author><pubDate>Mon, 22 Apr 2019 08:46:20 +0800</pubDate><description><![CDATA[整理一下springboot后台jar程序的打包发布过程，内容包括：

jar打包准备
window server服务器后台运行jar程序配置
发布配置阿里云


springboot打包jar包
因为是打包jar包发布，首先pom.xml配置文件中的打包类型选择jar

	&lt;groupId&gt;com.rencare.pay&lt;/groupId&gt;
	&lt;artifactId...]]></description><category></category></item><item><title><![CDATA[Cannot open Eclipse Marketplace]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/89334582</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/89334582</guid><author>shangming150</author><pubDate>Tue, 16 Apr 2019 15:33:33 +0800</pubDate><description><![CDATA[1、打开Eclipse-&gt;help-&gt;eclipse marketplace，报以下异常
Cannot open Eclipse Marketplace
Cannot install remote marketplace locations: Connection failed
This is most often caused by a problem with your inter...]]></description><category></category></item><item><title><![CDATA[Axure8.0 注册码]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/87941212</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/87941212</guid><author>shangming150</author><pubDate>Tue, 26 Feb 2019 18:37:41 +0800</pubDate><description><![CDATA[我的Axure升级到8.1.0.3382，使用最后一个可用的！
其他版本的小伙伴，请自行试验吧~

升级了8.1.0.3377版本后，需要使用下面这组注册码
license：zdfans.com
key：gP5uuK2gH + iIVO3YFZwoKyxAdHpXRGNnZWN8Obntqv7 ++ FF3pAz7dTu8B61ySxli
升级了8.1.0.3372版本后，需要使用下面这组注册码
...]]></description><category></category></item><item><title><![CDATA[Vue.js开发微信小程序：开源框架mpvue解析]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/86631836</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/86631836</guid><author>shangming150</author><pubDate>Thu, 24 Jan 2019 19:14:20 +0800</pubDate><description><![CDATA[年底了，手头工作要忙，下季度计划要忙，学习要忙。。。。 反正各种原因吧，停更了一段时间。。
今天也是转载一片最近在学习的东西——小程序，入门博文。
以后技术方面的博文可能就偏向于小程序或者前端了。
另外也会加一点其他的乱七八糟的问题，比如产品，比如投资理财。。
总之最近学习的东西挺多，但都只是输入，但总是输入，没有输出，还是很难记住东西的。
所以今后会保证输入-&amp;gt;思考-&amp;gt;输出这样的节奏...]]></description><category></category></item><item><title><![CDATA[java基础复习——队列]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/84325020</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/84325020</guid><author>shangming150</author><pubDate>Wed, 21 Nov 2018 16:43:04 +0800</pubDate><description><![CDATA[队列概念
复习了一下队列这种数据结构，队列这种数据结构起始挺好理解的：将它想象成奶茶店排队买奶茶的人，先排队的，排在队伍前面，先买到奶茶喝，后来排队的都在队伍后边，最后买到奶茶。
先进先出，后进后出（FIFO）
所以，队列是一种操作受限的数据结构。


队列实现



顺序队列



顺序队列，顾名思义数据在队列中顺序存储。这样的特性，与数组的存储方式不谋而合，因此我们可以使用数组来实现顺序队列...]]></description><category></category></item><item><title><![CDATA[搭建测试apk在线升级的本地web服务器]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/83348292</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/83348292</guid><author>shangming150</author><pubDate>Wed, 24 Oct 2018 18:43:50 +0800</pubDate><description><![CDATA[搭建本地Web服务器：

开启功能：控制面板-&amp;amp;amp;amp;amp;amp;amp;gt; 程序-&amp;amp;amp;amp;amp;amp;amp;gt; 程序和功能 -&amp;amp;amp;amp;amp;amp;amp;gt; 打开或关闭Windows功能，将“Internet信息服务”下的所有功能都打开。



设置防火墙：控制面板-&amp;amp;amp;amp;amp;amp;amp;gt; 系统安全 -&amp;amp;amp;amp;amp;amp;amp;g]]></description><category></category></item><item><title><![CDATA[安装新版本的apk：android.os.FileUriExposedException]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/83311742</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/83311742</guid><author>shangming150</author><pubDate>Wed, 24 Oct 2018 11:06:50 +0800</pubDate><description><![CDATA[最近在做app更新升级作者又碰到因为android 7.0 引起的兼容问题了。
在7.0以前的版本：
//创建临时图片
File photoOutputFile = SDPath.getFile(“temp.jpg”, SDPath.PHOTO_FILE_STR);
Uri photoOutputUri = Uri.fromFile(photoOutputFile);
这个file文件直接非常简单...]]></description><category></category></item><item><title><![CDATA[CoordinatorLayout等控件实现Google Material Design效果]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/83272246</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/83272246</guid><author>shangming150</author><pubDate>Mon, 22 Oct 2018 17:41:58 +0800</pubDate><description><![CDATA[本文介绍以下很 google的UI控件：CoordinatorLayout、AppbarLayout、NestedScrollView以及CollapsingToolbarLayout。它们共同实现了下面这样的效果：


初始控件

「CoordinatorLayout」：本质是一个「FrameLayout」，是一个“super-powered FrameLayout”，它的主要作用：作为顶层布局...]]></description><category></category></item><item><title><![CDATA[TimerTask类和Timer类的cancel()方法详解]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/82849397</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/82849397</guid><author>shangming150</author><pubDate>Wed, 26 Sep 2018 10:12:08 +0800</pubDate><description><![CDATA[无论是TimerTask类还是Timer类，其cancel()方法都是为了清除任务队列中的任务。
虽然都是清除任务队列中的任务，却有一些不同：TimerTask类中的cancel()方法侧重的是将自身从任务队列中清除，其他任务不受影响，而Timer类中的cancel()方法则是将任务队列中全部的任务清空。
下面以具体示例进行演示。
TimerTask类中的cancel()方法测试：
import ...]]></description><category></category></item><item><title><![CDATA[android studio配置jni开发环境（代码提示环境）]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/82702220</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/82702220</guid><author>shangming150</author><pubDate>Fri, 14 Sep 2018 14:19:35 +0800</pubDate><description><![CDATA[

1、NDK-build，老版本gradle

android studio编写NDK也是发展了几个版本，所以网上也会查询到多种多样的历史方式。一开始是用cygwin，然后采用ndk中的工具链ndk build。 
android studio默认so位置是jniLibs文件夹中，可以通过gradle设置。进入android.mk所在目录，执行ndk-build后默认会编译在Libs文件夹中，从...]]></description><category></category></item><item><title><![CDATA[Android 7.0 status=22错误]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/82251860</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/82251860</guid><author>shangming150</author><pubDate>Fri, 31 Aug 2018 10:32:04 +0800</pubDate><description><![CDATA[BLE开发，处处是坑啊~~~

最近在做一个BLE相关功能的封装，本来一切正常。可拿到客户那边就出问题了：BLE已经连接成功，但是又自动断开了连接…

好吧，客户既然有问题，那咱就解决呗~~

了解了客户的使用环境（Android 7.0,某*S7+）后，搭建相同的运行测试环境，开始调试。

调试过程中发现了如下的问题：...]]></description><category></category></item><item><title><![CDATA[android 性能优化 -- 启动过程 冷启动 热启动]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/82220023</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/82220023</guid><author>shangming150</author><pubDate>Thu, 30 Aug 2018 13:39:39 +0800</pubDate><description><![CDATA[
    
    




    
        
        
            一、应用的启动方式
　　通常来说，启动方式分为两种：冷启动和热启动。
　　1、冷启动：当启动应用时，后台没有该应用的进程，这时系统会重新创建一个新的进程分配给该应用，这个启动方式就是冷启动。
　　2、热启动：当启动应用时，后台已有该应用的进程（例：按back键、home键，应用虽然会退出，但是该应用...]]></description><category></category></item><item><title><![CDATA[Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/81565845</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/81565845</guid><author>shangming150</author><pubDate>Fri, 10 Aug 2018 16:36:56 +0800</pubDate><description><![CDATA[
    
        
            介绍new Thread的弊端及Java四种线程池的使用，对Android同样适用。本文是基础篇，后面会分享下线程池一些高级功能。
1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗？

new Thread(new Runnable() {

@Override
public void run() {
// TO...]]></description><category></category></item><item><title><![CDATA[ThreadPoolExecutor线程池submit() 和 excute()区别]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/81559967</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/81559967</guid><author>shangming150</author><pubDate>Fri, 10 Aug 2018 11:18:27 +0800</pubDate><description><![CDATA[在研究ThreadPoolExecutor线程池的时候，发现可以有两种启动线程的方法：submit(Runnable runnable)，excute(Runnable runnable) 
先说个结论吧：

submit()方法，可以提供Future &amp;amp;lt; T &amp;amp;gt; 类型的返回值。 
executor()方法，无返回值。

首先，我们看一下ThreadPoolExecutor的类图： 
...]]></description><category></category></item><item><title><![CDATA[线程池ThreadPoolExecutor构造方法和规则]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/81384363</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/81384363</guid><author>shangming150</author><pubDate>Fri, 03 Aug 2018 11:22:10 +0800</pubDate><description><![CDATA[ 
         
     
                    Java多线程-线程池ThreadPoolExecutor构造方法和规则 
     
     
         
                     
                为什么用线程池

博客地址 http://blog.youkuaiyun.com/qq_25806863

原文地址 http://blog...]]></description><category></category></item><item><title><![CDATA[攻城狮算保险--理财型，还是消费型？]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/81139526</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/81139526</guid><author>shangming150</author><pubDate>Fri, 20 Jul 2018 23:57:23 +0800</pubDate><description><![CDATA[人到中年（虽然我才18^_^）会更焦虑，上有老下有小的，我如果不在了，怎么保障他们的生活质量呢~~所以，还是做一些保障措施吧，买份保险吧。这么着买保险的目标就提上了日程。 
恰巧最近加入了一个理财培训课程，也正好讲到给家人，尤其是家里的经济支柱配置一份合适的保险的问题。于是，我就很认真研究了一下这个保险的事情。 
理财课上强调一定要买【消费性】的保险，因为买【返还型】或者【分红型】的保险，最终返还...]]></description><category></category></item><item><title><![CDATA[java.lang.UnsatisfiedLinkError: dlopen failed]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/81120664</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/81120664</guid><author>shangming150</author><pubDate>Thu, 19 Jul 2018 18:35:09 +0800</pubDate><description><![CDATA[今天在做一个SDK开发的时候，因为library中用到了.so库文件，所以我直接从之前的项目中复制过来对应的.so文件到libs中，但是开发完成后，运行直接到native方法处就崩溃。。。我一脸蒙蔽哈。。。 
这TM什么情况，在native处崩溃后，没有任何错误提示，搞的我1个小时定位问题。。。 
最后实在搞不了了，还是写了个日志输出代码，发现这个错误：



java.lang.Unsatisf...]]></description><category></category></item><item><title><![CDATA[Android-Handler机制详解并自定义Handler]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/80814907</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/80814907</guid><author>shangming150</author><pubDate>Tue, 26 Jun 2018 15:12:06 +0800</pubDate><description><![CDATA[之前研究过Android的Handler机制，但是一直没有机会自己实现一次。最近又看到这个Handler机制，于是决定自己实现以下这个Handler机制。 
首先，简单介绍以下Handler机制。

Handler机制在Android中通常用来更新UI：子线程执行任务，任务执行完毕后发送消息：Handler.sendMessage()，然后在UI线程Handler.handleMessage()就...]]></description><category></category></item><item><title><![CDATA[Android搭建Ftp服务器监听文件传输状态]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/80507760</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/80507760</guid><author>shangming150</author><pubDate>Wed, 30 May 2018 14:00:58 +0800</pubDate><description><![CDATA[最近项目上需要一个功能：使用Android软件搭建一个FTP服务器，接收文件，然后再使用FTP客户端，将此文件上传到另一个PC服务器上。 
给予以上的需求，Android实现FTP客户端的功能已经实现，且网上有很多资料可供参考。所以主要的工作就是搭建这个FTP服务器。恰巧之前实现FTP客户端功能时使用的是Apache的FTP框架，而搭建FTP服务器的功能也可以使用Apache的这个FTP框架，所以...]]></description><category></category></item><item><title><![CDATA[android studio配置打包混淆的aar库文件]]></title><link>https://blog.youkuaiyun.com/shangming150/article/details/80404864</link><guid>https://blog.youkuaiyun.com/shangming150/article/details/80404864</guid><author>shangming150</author><pubDate>Tue, 22 May 2018 14:01:56 +0800</pubDate><description><![CDATA[
最近项目中有用到发布混淆aar的需求，网上有很多方法，但都不够全面，这里把自己整理的结果做个汇总，避免重复收集浪费时间


环境要求



android studio（该方法是针对AS的）



初始需求



把你项目中的某一个模块，打包成一个混淆的aar，集成到其他的项目中，同事暴露的接口不混淆，你这个aar的依赖库跟其他项目的依赖库不能冲突



需求详情



假设目前的项目有三个mo...]]></description><category></category></item></channel></rss>