<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wolflz的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wolflz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wolflz]]></copyright><item><title><![CDATA[AS问题处理 - VIVO手机APK安装失败]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/87930406</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/87930406</guid><author>wolflz</author><pubDate>Tue, 26 Feb 2019 10:37:24 +0800</pubDate><description><![CDATA[VIVO手机APK安装失败
现象：
    通过Android Studio连线vivo x21测试机，直接运行APK，安装失败。运行就显示&quot;解析包错误&quot;。
原因：
    部分VIVO手机不支持安装Debug版本的APK，只能通过正式包安装。
解决方案：
    1、设置你的Android Studio，关闭Instant Run。File-&amp;gt;Settings-&amp;gt;Build,Exec...]]></description><category></category></item><item><title><![CDATA[Android Bug - 魅族三Shader问题]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/77989601</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/77989601</guid><author>wolflz</author><pubDate>Fri, 15 Sep 2017 11:35:43 +0800</pubDate><description><![CDATA[这几天编写Opengl项目，通过shader进行绘制，在做渐变的时候出问题了。
首先在魅族或者其他手机或者均为正常渐变，而偏偏在魅族3（MX3）手机上渐变有问题。
核心代码如下：

float scale = getScaleByPoints(m_nForeGradientBeginPos, m_nForeGradientEndPos, vec2(v_texCoord[0], v_texC]]></description><category></category></item><item><title><![CDATA[Android学习 - onRetainNonConfigurationInstance()与onSaveInstanceState()的比较]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/77883030</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/77883030</guid><author>wolflz</author><pubDate>Thu, 07 Sep 2017 16:29:03 +0800</pubDate><description><![CDATA[Android中转屏与Activity状态的保存有很多种方法，其中onSaveInstanceState()和onRetainNonConfigurationInstance()比较常用，此处比较这两种方式适用地方。
针对Android平台，不论出于哪种目的，都或多或少需要在多个Activities中的跳转操作，其中包括为了获得某些系统资源和必要信息，而通过启动（startActivity()、]]></description><category></category></item><item><title><![CDATA[Android学习 - Android XML的使用]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/77879430</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/77879430</guid><author>wolflz</author><pubDate>Thu, 07 Sep 2017 11:45:01 +0800</pubDate><description><![CDATA[一、布局文件。在layout目录下，使用比较广泛；
我们可以为应用定义两套或多套布局，例如：可以新建目录layout_land（代表手机横屏布局），layout_port（代表手机竖屏布局），系统会根据不同情况自动找到最合适的布局文件，但是在同一界面的两套不同布局文件的文件名应该是相同的，只是放在了两个不同的目录下。
二、图片文件。在drawable目录下，从2.1版本以后分为三个目录：
1]]></description><category></category></item><item><title><![CDATA[Ubuntu下Android Studio开发环境搭建]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/51924394</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/51924394</guid><author>wolflz</author><pubDate>Sat, 16 Jul 2016 14:44:51 +0800</pubDate><description><![CDATA[Ubuntu下Android开发环境搭建
Ubuntu系统下Android开发环境搭建，Google提出新的开发工具Android Studio，这里就搭建Android Studio开发环境搭建。
一、Ubuntu下JDK处理
首先，需要安装JDK，Ubuntu系统上OpenJDK，但是编程开发必须使用OracleJDK，所以还需安装Oracle JDK。当前的Android Studio]]></description><category></category></item><item><title><![CDATA[Android学习 - 如何结束进程]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46427819</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46427819</guid><author>wolflz</author><pubDate>Tue, 09 Jun 2015 16:03:09 +0800</pubDate><description><![CDATA[Android结束进程，关闭程序的方法。经过这几天的调研，发现了Android结束一个进程的方法。即采用下面这个类：
void android.app.ActivityManager.restartPackage(String packageName)
public void restartPackage (String packageName)

Since: API Level 3
Ha]]></description><category></category></item><item><title><![CDATA[Android学习 - Android最佳性能实践]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46410307</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46410307</guid><author>wolflz</author><pubDate>Mon, 08 Jun 2015 11:50:51 +0800</pubDate><description><![CDATA[(一)合理管理内存
怎样才能写出高性能的应用程序，如何避免程序出现OOM，或者当程序内存占用过高的时候该怎么样去排查。确实，一个优秀的应用程序，不仅仅要功能完成得好，性能问题也应该处理得恰到好处。为此，我也是阅读了不少Android官方给出的高性能编程建议，把这些建议进行整理和分析，帮助大家能够写出更加出色的应用程序。
注意文章的内容基本源于AndroidDoc，如果想要阅读更加详细的关于性能]]></description><category></category></item><item><title><![CDATA[Android学习 - Android优化浅析]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46356495</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46356495</guid><author>wolflz</author><pubDate>Thu, 04 Jun 2015 10:06:32 +0800</pubDate><description><![CDATA[Android优化来说有很多方面，比如listView等。但是单纯来说Android本身系统就提供了很多优化，所以这里讲优化其实有点没有必要。总体来说这里所说的优化其实是程序员平时所犯的简单错误，也就是说这里所说的优化是想让程序员拥有一个良好的代码风格，尽量避免因为代码错误而产生的多余消耗。
优化的核心原则
不做不必要的事，不分配不必要的内存
1、字符串频繁操作时，多用StringBuffe]]></description><category></category></item><item><title><![CDATA[Java学习 - Thread的Stop方法以及替换实现]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46347355</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46347355</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 16:15:45 +0800</pubDate><description><![CDATA[在Android中新线程如果不及时停止是很麻烦的，我们这一般用线程池来完成，但是有些时候不能依赖线程池。这里Stop方法不推荐使用，我给个具体的例子：
public class DeprecatedStop extends Object implements Runnable {
	public void run() {
		int count = 0;
		while (count < 20)]]></description><category></category></item><item><title><![CDATA[Java学习 - 内存简介]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46346543</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46346543</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 15:43:07 +0800</pubDate><description><![CDATA[首先我们要明白一点，我们所使用的变量就是一块一块的内存空间！！
一、内存管理原理
在java中，有java程序、虚拟机、操作系统三个层次，其中java程序与虚拟机交互，而虚拟机与操作系统间交互！这就保证了java程序的平台无关性！下面我们从程序运行前，程序运行中、程序运行内存溢出三个阶段来说一下内存管理原理！
1、程序运行前：JVM向操作系统请求一定的内存空间，称为初始内存空间！程序执行过程]]></description><category></category></item><item><title><![CDATA[Android学习 - 使用及实现系统分享接口]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46344695</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46344695</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 14:12:57 +0800</pubDate><description><![CDATA[为了应用的推广、传播，很多的应用中都有“分享”功能，一个按钮，点击后会出现短信、微博等等。一切实现了分享功能的应用列表。这一篇文章主要介绍怎么调用分享功能和怎么实现分享接口让自己应用出现分享列表中。Android应用中能很方便的完成这些功能，这也正是Android的伟大之处，他能很简单的完成应用之间的沟通以相互整合。
调用分享功能
1、分享文本
分享功能使用的隐式启动Activity的方法，]]></description><category></category></item><item><title><![CDATA[Android学习 - 触摸及手势操作]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46344467</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46344467</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 13:59:44 +0800</pubDate><description><![CDATA[GestureDetector简介
触摸屏为我们操作无键盘、无鼠标的手机系统带来了很多的便利。当用户触摸屏幕时会产生很多的触摸事件，down、up、move等等。View类有个View.OnTouchListener内部接口，通过重写他的onTouch(View v, MotionEvent event)方法，我们可以处理一些touch事件，如下：
public class MainActiv]]></description><category></category></item><item><title><![CDATA[Java学习 - Java操作MongoDB]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46342703</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46342703</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 11:21:55 +0800</pubDate><description><![CDATA[java驱动程序是Mongodb中的驱动程序之一，也是比较成熟的Mongodb驱动程序之一，下面介绍了使用java连接、操作Mongodb。
一、安装java驱动程序
Mongodb的java驱动程序是一个jar包，可以在：
https://github.com/mongodb/mongo-java-driver/downloads
下载的jar导入到eclipse的项目中即可。
二、j]]></description><category></category></item><item><title><![CDATA[Java学习 - URL短地址压缩算法]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46342501</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46342501</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 11:08:57 +0800</pubDate><description><![CDATA[短网址应用已经在全国各大微博上开始流行了起来。例如QQ微博的url.cn、新郎的t.cn等。我们在新浪微博上发布网址的时候，微博会自动判别网址，并将其转换，例如：http://t.cn/hrYnr0。为什么要这样做的，原因我想有这样几点：
1、微博限制字数为140字一条，那么如果我们需要发一些连接上去，但是这个连接非常的长，以至于将近要占用我们内容的一半篇幅，这肯定是不能被允许的，所以短网址应运]]></description><category></category></item><item><title><![CDATA[Android学习 - Service被关闭后自动重启，解决被异常kill 服务]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46342121</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46342121</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 10:49:44 +0800</pubDate><description><![CDATA[Android开发的过程中，每次调用startService(Intent)的时候，都会调用该Service对象的onStartCommand(Intent,int,int)方法，然后在onStartCommand方法中做一些处理。然后我们注意到这个函数有一个int的返回值，这篇文章就是简单地讲讲int返回值的作用。从Android官方文档中，我们知道onStartCommand有4种返回值：
]]></description><category></category></item><item><title><![CDATA[Android学习 - 判断手机是否为双卡并发短信]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46342017</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46342017</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 10:44:39 +0800</pubDate><description><![CDATA[判断手机是否为双卡：
public static void initIsDoubleTelephone(Context context) {
	boolean isDouble = true;
	Method method = null;
	Object result_0 = null;
	Object result_1 = null;
	TelephonyManager tm = (Telep]]></description><category></category></item><item><title><![CDATA[Android学习 - 拨号盘dialer定制声音DTMF Tones]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46341811</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46341811</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 10:32:01 +0800</pubDate><description><![CDATA[DTMF：双音多频，电话系统中电话机与交换机之间的一种用户信令，通常用于发送被叫号码。双音多频的拨号键盘是4*4的矩阵，每一行代表一个低频，每一列代表一个高频，每按一个键就发送一个高频和低频的正弦信号组合。比如1相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。
现在我就想给自己的拨号键盘加上双音多频的声音，类似于固定电话拨号的声音。页面类似于系统的拨号盘。
p]]></description><category></category></item><item><title><![CDATA[Android学习 - ant批量打包]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46340883</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46340883</guid><author>wolflz</author><pubDate>Wed, 03 Jun 2015 09:37:11 +0800</pubDate><description><![CDATA[很多的应用中需要加上应用推广的统计，如果一个一个的去生成不同渠道包的应用，效率低不说，还有可能不小心弄错了分发渠道，使用ant可以批量生成应用。
一、添加渠道包信息
为了统计渠道信息，就不得不在程序的某个地方加入渠道的信息，然后针对不同的渠道打不同的包。一般可以在Manifest文件中加入渠道编号，而不直接写在代码中。这样做的好处是，可以针对不同渠道，自动化去修改Manifest文件中的渠道编]]></description><category></category></item><item><title><![CDATA[Android学习 - 游戏图片]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46336595</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46336595</guid><author>wolflz</author><pubDate>Tue, 02 Jun 2015 22:54:18 +0800</pubDate><description><![CDATA[根据系列图片绘制动画总结
一、采用系统提供的Animation类，用自带的方法


其中的animation.xml文件如下：

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >

    <item
        androi]]></description><category></category></item><item><title><![CDATA[Android学习 - 网络编程的理解]]></title><link>https://blog.youkuaiyun.com/wolflz/article/details/46336563</link><guid>https://blog.youkuaiyun.com/wolflz/article/details/46336563</guid><author>wolflz</author><pubDate>Tue, 02 Jun 2015 22:45:45 +0800</pubDate><description><![CDATA[1、Socket通信（底层、通信的数据协议、通信模式）
通信模式：同步、异步
通信协议：有状态（常连接）、无状态（无常连接）（无法把第二次关联和第一次关联联系起来）
在一次完整的通信会话过程中连接(socket)一直建立着，没有中断。
有状态：例如打电话，我第一次打给你问你吃了吗？你说吃了，然后我又问你吃啥，你说喝粥，也就是说第二次我问你的时候你知道我是谁？
无状态：我第一次打电话给你问]]></description><category></category></item></channel></rss>