<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[artzok的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/artzok</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; artzok]]></copyright><item><title><![CDATA[Android 有序广播与无序广播]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/52266948</link><guid>https://blog.youkuaiyun.com/artzok/article/details/52266948</guid><author>artzok</author><pubDate>Sun, 21 Aug 2016 14:11:54 +0800</pubDate><description><![CDATA[1.无序广播和有序广播的定义
无序广播是指由sendBroadcast方法发送的广播。有序广播是指由sendOrderedBroadcast方法发送的广播。

2. 两者的区别]]></description><category></category></item><item><title><![CDATA[Android Activity任务栈]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/52262843</link><guid>https://blog.youkuaiyun.com/artzok/article/details/52262843</guid><author>artzok</author><pubDate>Sat, 20 Aug 2016 19:33:44 +0800</pubDate><description><![CDATA[1. Activity任务栈


Activity任务栈是Android对Activity界面的一种管理方式。任务栈，顾名思义就是“后进先出”，也就是说，当从一个Activity中启动一个新的Activity界面时，新界面将位于Activity栈的栈顶；当用户按下返回键时，系统将弹出栈顶的Activity并将上一个Activity置为栈顶，此时应用界面也就回到该Activity界面了，如果应]]></description><category></category></item><item><title><![CDATA[Android 常见Action]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/52262428</link><guid>https://blog.youkuaiyun.com/artzok/article/details/52262428</guid><author>artzok</author><pubDate>Sat, 20 Aug 2016 17:34:58 +0800</pubDate><description><![CDATA[1. 拨打电话的广播接收器的Action :
 
要求权限：

2. 监听SD卡状态的广播接收器的Action :
 安装SD卡：            卸载SD卡：
无需权限，但必须设置数据类型：
3. 接收短信的广播接收器的Action :
要求权限：
uses-permission android:name="android.permission.RECEIVE_SMS"/]]></description><category></category></item><item><title><![CDATA[Android Activity生命周期]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/52260796</link><guid>https://blog.youkuaiyun.com/artzok/article/details/52260796</guid><author>artzok</author><pubDate>Sat, 20 Aug 2016 13:01:54 +0800</pubDate><description><![CDATA[1 完整生命周期
一个Activity应该在onCreate()方法里执行设置“全局”状态(如定义布局)，并在onDestroy()方法里释放所有剩余资源。
onCreate()-->onStart()-->onResume()-->运行在最前端-->onPause()-->onStop()-->onDestory()
2  可见生命周期
在这两个方法，你可以保持该Activity需要展示]]></description><category></category></item><item><title><![CDATA[Android帧动画创建方法]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/52253664</link><guid>https://blog.youkuaiyun.com/artzok/article/details/52253664</guid><author>artzok</author><pubDate>Fri, 19 Aug 2016 19:45:40 +0800</pubDate><description><![CDATA[1. 获取资源
    首先需要获取帧动画的资源，然后利用工具将动画拆分成图片帧，最后将所有图片帧拷贝到drawable-xxx文件下：


2. 创建动画
 
接下来，首先创建一个drawable资源文件，然后再该文件内创建一个名为run_girl_anim.xml文件，并且为该资源选择animation-list根，最后添加下面代码：

<animation-list xmlns]]></description><category></category></item><item><title><![CDATA[Android对话框集合]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/52253523</link><guid>https://blog.youkuaiyun.com/artzok/article/details/52253523</guid><author>artzok</author><pubDate>Fri, 19 Aug 2016 19:09:47 +0800</pubDate><description><![CDATA[1. 普通对话框

new AlertDialog.Builder(this).setTitle("普通对话框").setMessage("对话框信息")
				.setPositiveButton("确定", new OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {]]></description><category></category></item><item><title><![CDATA[android多国语言文件夹文件汇总]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/52252948</link><guid>https://blog.youkuaiyun.com/artzok/article/details/52252948</guid><author>artzok</author><pubDate>Fri, 19 Aug 2016 18:07:57 +0800</pubDate><description><![CDATA[中文（中国）：values-zh-rCN                        捷克文：values-cs-rCZ
中文（台湾）：values-zh-rTW                        丹麦文：values-da-rDK
中文（香港）：values-zh-rHK                         
德文（奥地利）：values-de-rAT
英语（美]]></description><category></category></item><item><title><![CDATA[Android ListView部分属性介绍]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/52235068</link><guid>https://blog.youkuaiyun.com/artzok/article/details/52235068</guid><author>artzok</author><pubDate>Wed, 17 Aug 2016 21:56:47 +0800</pubDate><description><![CDATA[1. 设置ListView的分割线 

     * android:divider="#FFFF0000" 
    * android:dividerHeight="2dp"

2. 设置背景图片
     * android:background="@drawable/ic_launcher"
     * android:scrollingCache="false"]]></description><category></category></item><item><title><![CDATA[JAVA IO流]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/51791339</link><guid>https://blog.youkuaiyun.com/artzok/article/details/51791339</guid><author>artzok</author><pubDate>Thu, 30 Jun 2016 21:08:11 +0800</pubDate><description><![CDATA[在计算机编程中，IO是一项非常重要的内容。I表示Input，O表示Output，即输入/输出。这里所说的输入/输出都是站在应用程序的立场上讲的。输入和输出都必须有源和目标，对于输入，目标就是程序本身，源可能是文件、网络、内存空间、数据库等等。对于输出，上述情况刚好相反。一 、流的概念流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中，管道是一条不间断的字节流，用来实现程序或进]]></description><category></category></item><item><title><![CDATA[Java的死锁现象]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/51737574</link><guid>https://blog.youkuaiyun.com/artzok/article/details/51737574</guid><author>artzok</author><pubDate>Thu, 23 Jun 2016 01:02:09 +0800</pubDate><description><![CDATA[很久以前学习Java的多线程机制时，一直没有搞懂Java的锁机制，今天花费了一整天的时间研究了一下。在学习的过程中发现一项非常有趣的问题，那就是死锁现象，下面是对死锁现象的完整描述：



当A线程等待由B线程持有的锁时，而B线程正在等待A线程持有的锁，随即发生死锁现象，
JVM不会检测也不试图避免这种情况，完全需要靠程序员自己注意。



要避免死锁现象，我们首先需要搞清楚什么]]></description><category></category></item><item><title><![CDATA[关于《连连看》的算法研究和演示Demo]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/51622782</link><guid>https://blog.youkuaiyun.com/artzok/article/details/51622782</guid><author>artzok</author><pubDate>Fri, 10 Jun 2016 00:18:38 +0800</pubDate><description><![CDATA[连连看曾经是一款非常受欢迎的游戏，同时它也是一款比较古老的游戏。看到这里你千万不要认为本篇文章打算讨论《连连看》的历史以及它取得的丰功伟绩。恰恰相反，在这篇文章中我们打算讨论该游戏背后的实现思想，包括它定义的游戏规则，以及游戏的实现算法。作为应用，我们还将利用Java代码实现一个通用的《连连看》算法，并使用Java Swing框架创建一个演示实例。


1《连连看》的游戏规则是如何定义的？]]></description><category></category></item><item><title><![CDATA[LibGDX教程——重建Flappy Bird——(8)屏幕切换与播放声音(终结)]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50583382</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50583382</guid><author>artzok</author><pubDate>Tue, 26 Jan 2016 00:32:11 +0800</pubDate><description><![CDATA[正如标题上所标注的，本章将完成FlappyBird的所有剩余内容。对比原版游戏我们可以看到FlappyBird现在还两个界面，如下所示：


  LibGDX提供Game和Screen两个类使我们可以将游戏拆分为多个界面。Game实现了ApplicationListener接口，所以他也可以作为项目的主类(也就是共享项目的启动类)。而Screen是LibGDX提供的一个具有完整生命周期的界面]]></description><category></category></item><item><title><![CDATA[LibGDX教程——重建Flappy Bird——(7) 添加GUI信息]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50574450</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50574450</guid><author>artzok</author><pubDate>Mon, 25 Jan 2016 01:15:28 +0800</pubDate><description><![CDATA[上一章介绍我们基本已经完成FlappyBird的游戏逻辑，接下来在本章将添加一些GUI信息，如分数、按钮等。
分数GUI
  首先我们需要为WorldController维护一个int值表示当前玩家获得的分数。修改WorldController并添加相应的方法：
...
public class WorldController extends InputAdapter implements]]></description><category></category></item><item><title><![CDATA[LibGDX教程——重建Flappy Bird——(6) 碰撞检测及细节处理]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50570981</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50570981</guid><author>artzok</author><pubDate>Sat, 23 Jan 2016 22:18:55 +0800</pubDate><description><![CDATA[本章源码链接：http://pan.baidu.com/s/1o6Tt6VS密码：dvsc
 上一章完整的介绍了BOX2D的物理仿真创建过程，在本章我们将继续完成BOX2D的剩余内容——碰撞检测。因为BOX2D帮我们完成了所有物理模拟过程，包括碰撞检测，这极大的降低我们的项目难度，我们不需要理解碰撞检测如何运行，甚至不需要知道任何碰撞检测算法，就能够完成碰撞检测并通知我们。下面就让我们为Flap]]></description><category></category></item><item><title><![CDATA[LibGDX教程——重建Flappy Bird——(5) 添加Box2D物理仿真和游戏逻辑]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50555987</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50555987</guid><author>artzok</author><pubDate>Fri, 22 Jan 2016 20:06:48 +0800</pubDate><description><![CDATA[在本章我们将为Flappy Bird添加BOX2D物理仿真，BOX2D物理仿真可以模拟现实世界物体的属性，如重力、速度、摩擦等等。在BOX2D中存在三种物理对象，分别是StaticBody、KinematicBody和DynamicBody，其中静态物体StaticBody只能模拟那些固定不动的对象且不能与StaticBody和KinematicBody类型物理对象发生碰撞。KinematicBo]]></description><category></category></item><item><title><![CDATA[LibGDX教程——重建Flappy Bird——(4) 创建游戏对象]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50551537</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50551537</guid><author>artzok</author><pubDate>Wed, 20 Jan 2016 23:16:50 +0800</pubDate><description><![CDATA[在本章，我们将为Flappy Bird项目创建一个可以显示的场景。该游戏场景由几个具有相同的属性和功能的游戏对象组成。但是，这些对象被渲染的方式却各有不同，简单的对象直接渲染其所分配的纹理，复杂的对象可能需要多个纹理组合渲染。
创建游戏对象
首先创建AbstractGameObject类，并添加下面代码：
package com.art.zok.flappybird.game.object;]]></description><category></category></item><item><title><![CDATA[LibGDX教程——重建Flappy Bird——(3) 打包资源]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50550426</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50550426</guid><author>artzok</author><pubDate>Wed, 20 Jan 2016 19:08:33 +0800</pubDate><description><![CDATA[修改Android启动图标和名称
首先，我们需要替换Android项目的默认启动图标。FlappyBird-android项目中存在一个名为res的特殊目录。在该目录中包含了Android项目专用的资源文件。

展开res目录可以看到四个以drawable为前缀的文件夹：
drawable-ldpi(低分辨率显示屏)
drawable-mdpi(中分辨率显示屏)
drawable-hd]]></description><category></category></item><item><title><![CDATA[LibGDX教程——重建Flappy Bird——(2) 创建游戏框架]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50549467</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50549467</guid><author>artzok</author><pubDate>Wed, 20 Jan 2016 16:40:49 +0800</pubDate><description><![CDATA[我们都知道Libgdx只是一个2D游戏框架，并不是游戏引擎，著名的AndEngine 2D游戏引擎就是基于Libgdx开发的，并且Flappy Bird原版就是使用AndEngine引擎开发的。所以我们必须先创建自己游戏引擎。
创建UML类图
首先我们详细分析Flappy Bird项目架构。我们使用类图帮助我们可视化项目结构并有组织有结构的理解项目构成。下面是该类图：

上图中Flappy]]></description><category></category></item><item><title><![CDATA[Libgdx教程——重建Flappy Bird——(1) 项目创建与导入]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50549380</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50549380</guid><author>artzok</author><pubDate>Wed, 20 Jan 2016 16:32:47 +0800</pubDate><description><![CDATA[为了节省时间和篇幅，有关LibGDX的基础内容在本文将不会介绍。
我们在本项目中使用的是旧版libgdx项目生成工具gdx-setup-ui.jar，虽然该工具是旧版，但是对于简单的项目来说该工具还是非常方便的。下面我们将通过该工具创建项目。


首先双击打开该工具，如图所示：


点击创建按钮，并输入相应的项目名称：


其中Name表示项目名称，package表示包名，ga]]></description><category></category></item><item><title><![CDATA[算法导论——最大子数组]]></title><link>https://blog.youkuaiyun.com/artzok/article/details/50444156</link><guid>https://blog.youkuaiyun.com/artzok/article/details/50444156</guid><author>artzok</author><pubDate>Thu, 31 Dec 2015 23:59:06 +0800</pubDate><description><![CDATA[import java.util.Arrays;

import sun.applet.Main;


public class MaxSubArray {
	private final static int MAX_VALUE = 10;  
    private final static int LENGTH = 20; 
	
	private static class Result {
	]]></description><category></category></item></channel></rss>