<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[com360的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/com360</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; com360]]></copyright><item><title><![CDATA[makefile的语法及写法]]></title><link>https://blog.youkuaiyun.com/com360/article/details/50288079</link><guid>https://blog.youkuaiyun.com/com360/article/details/50288079</guid><author>com360</author><pubDate>Sun, 13 Dec 2015 23:26:02 +0800</pubDate><description><![CDATA[0 Makefile概述 

-------------------------------------------------------------------------------- 
什么是makefile？或许很多Winodws的程序员都不知道这个东西，因为那些Windows的IDE都为你做了这个工作，但我觉得要作一个好的和professional的程序员，makefile还是要]]></description><category></category></item><item><title><![CDATA[Android监听键盘状态变化]]></title><link>https://blog.youkuaiyun.com/com360/article/details/50204667</link><guid>https://blog.youkuaiyun.com/com360/article/details/50204667</guid><author>com360</author><pubDate>Mon, 07 Dec 2015 13:30:15 +0800</pubDate><description><![CDATA[如下监听键盘状态变化的代码摘自React native的键盘状态监听代码，
这个方法会影响部分性能，正常情况下可以忽略。


import android.graphics.Rect;
import android.support.annotation.Nullable;
import android.util.DisplayMetrics;
import android.view.Vie]]></description><category></category></item><item><title><![CDATA[Linux chmod使用]]></title><link>https://blog.youkuaiyun.com/com360/article/details/46691011</link><guid>https://blog.youkuaiyun.com/com360/article/details/46691011</guid><author>com360</author><pubDate>Tue, 30 Jun 2015 08:04:51 +0800</pubDate><description><![CDATA[修改文件的权限

chmod [options] who operator permission file-list (符号模式)

chmod [options] mode file-list (绝对模式）

 

参数

file-list 是chmod需要修改权限的文件名或目录的路径名

 

说明

Linux中主要有两种改变权限的方法

第一种：使用符]]></description><category></category></item><item><title><![CDATA[android jni 中常使用的函数及用法]]></title><link>https://blog.youkuaiyun.com/com360/article/details/46685023</link><guid>https://blog.youkuaiyun.com/com360/article/details/46685023</guid><author>com360</author><pubDate>Mon, 29 Jun 2015 17:59:40 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/banketree/article/details/40535325





Java类型
本地类型（JNI）
描述


boolean（布尔型）
jboolean 
无符号8个比特


byte(字节型)
jbyte 
有符号8个比特


char(字符型)
jchar 
无符号16个比特


sho]]></description><category></category></item><item><title><![CDATA[Android注册native函数和jave方法的对应关系]]></title><link>https://blog.youkuaiyun.com/com360/article/details/46682039</link><guid>https://blog.youkuaiyun.com/com360/article/details/46682039</guid><author>com360</author><pubDate>Mon, 29 Jun 2015 14:37:56 +0800</pubDate><description><![CDATA[原标题：Android System.loadLibrary及JNI_OnLoad简介  

http://blog.youkuaiyun.com/myarrow/article/details/9718677 

看着本篇文章主要是讲解load so库的方法及过程，以及在load库的过程中注册java方法和native函数的对应关系。
标题也给稍微改动了一下。我也是刚开始看c代码和c++代码，没有]]></description><category></category></item><item><title><![CDATA[dlopen与dlsym的说明和使用-动态拿到函数地址]]></title><link>https://blog.youkuaiyun.com/com360/article/details/46671315</link><guid>https://blog.youkuaiyun.com/com360/article/details/46671315</guid><author>com360</author><pubDate>Sun, 28 Jun 2015 14:59:34 +0800</pubDate><description><![CDATA[Linux提供了一套API来动态装载库。下面列出了这些API：

- dlopen，打开一个库，并为使用该库做些准备。
- dlsym，在打开的库中查找符号的值。
- dlclose，关闭库。
- dlerror，返回一个描述最后一次调用dlopen、dlsym，或dlclose的错误信息的字符串。



通过dlopen动态的打开动态库，动态库加载完成后，返回一个句柄，然后把句]]></description><category></category></item><item><title><![CDATA[otto源码分析]]></title><link>https://blog.youkuaiyun.com/com360/article/details/38640771</link><guid>https://blog.youkuaiyun.com/com360/article/details/38640771</guid><author>com360</author><pubDate>Sun, 17 Aug 2014 17:54:23 +0800</pubDate><description><![CDATA[otto这个开源项目是一个event bus模式的消息框架，用于程序各个模块之间的通信，此消息框架可以使得各个
模块之间减少耦合性。

此项目是支付公司square一个开源项目，项目托管于github
https://github.com/square/otto


基本模型是，Android的组件可以注册监听,然后发送消息，接收消息，模式就是观察者模式，但是有别于
java实现的]]></description><category></category></item><item><title><![CDATA[Java 正则表达式]]></title><link>https://blog.youkuaiyun.com/com360/article/details/38513341</link><guid>https://blog.youkuaiyun.com/com360/article/details/38513341</guid><author>com360</author><pubDate>Tue, 12 Aug 2014 13:18:41 +0800</pubDate><description><![CDATA[Java 提供了功能强大的正则表达式API，在java.util.regex 包下。本教程介绍如何使用正则表达式API。

正则表达式

一个正则表达式是一个用于文本搜索的文本模式。换句话说,在文本中搜索出现的模式。例如，你可以用正则表达式搜索网页中的邮箱地址或超链接。

正则表达式示例

下面是一个简单的Java正则表达式的例子，用于在文本中搜索 http://]]></description><category></category></item><item><title><![CDATA[Android WebView安全讨论]]></title><link>https://blog.youkuaiyun.com/com360/article/details/38492007</link><guid>https://blog.youkuaiyun.com/com360/article/details/38492007</guid><author>com360</author><pubDate>Mon, 11 Aug 2014 14:16:19 +0800</pubDate><description><![CDATA[Android WebView安全问题相信大家都遇到过，今天我专门开一个帖子和大家讨论一下如何
正确的对待WebView的安全问题。我提出的解决方式也许不是最好的，可能还会有很多其他的更好的解决方案，我在这里也仅仅是抛砖引玉，希望大家能提出更好的解决方案出来，能让大家在讨论中都能获益。

下面我先抛出两个WebView的主要问题
（1）关于Javacript和Java通信的桥的问题。
（]]></description><category></category></item><item><title><![CDATA[定时任务为什么不用Timer]]></title><link>https://blog.youkuaiyun.com/com360/article/details/38420049</link><guid>https://blog.youkuaiyun.com/com360/article/details/38420049</guid><author>com360</author><pubDate>Thu, 07 Aug 2014 15:48:06 +0800</pubDate><description><![CDATA[在做定时任务的时候，有的同学可能能会用到Timer这个定时任务的辅助类，
但是使用它会有潜在的风险，风险如下，
（1）时间计算不准确问题
    因为Timer是以绝对时间计算定时任务的，会受到系统时间的影响，如果在任务执行期间，更改了系统时间，那么会
导致时间计算不准确问题，导致任务没用按找预定的时间执行。
（2）只能单任务执行
    简单讲就是，只能一次执行一个任务，如果前一个任]]></description><category></category></item><item><title><![CDATA[Toast窗口的源码分析]]></title><link>https://blog.youkuaiyun.com/com360/article/details/17165485</link><guid>https://blog.youkuaiyun.com/com360/article/details/17165485</guid><author>com360</author><pubDate>Fri, 06 Dec 2013 13:00:39 +0800</pubDate><description><![CDATA[今天写个帖子，主要讲解一下我自己对Toast的理解和创建流程。
整个过程大部分都是分析源码。不多废话了，马上开始。


为了更加直观，先上使用代码：
Toast.makeText(context, "hello toast", 1).show();


咱们一般用Toast来提示信息，比如eoe的安卓客户端按两次返回的推出提示


咱们看下Toast的创建及显示过程吧：
]]></description><category></category></item><item><title><![CDATA[PopupWindow源码分析]]></title><link>https://blog.youkuaiyun.com/com360/article/details/17078225</link><guid>https://blog.youkuaiyun.com/com360/article/details/17078225</guid><author>com360</author><pubDate>Mon, 02 Dec 2013 18:39:08 +0800</pubDate><description><![CDATA[PopupWindow是我们经常使用的一个控件，严格来说这个PopuWindow就用来在指定位置显示一个View。
经过分析源码，PopupWindow里面没有Window对象，只是把View设置到屏幕而已。
从构造函数中可知，我们只是把Context对象传递了过去，这个Context是Activity，通过Context获得WindowManager对象。
从源码可以得出一个结论是，即使没]]></description><category></category></item><item><title><![CDATA[Dialog的创建与显示过程]]></title><link>https://blog.youkuaiyun.com/com360/article/details/17060229</link><guid>https://blog.youkuaiyun.com/com360/article/details/17060229</guid><author>com360</author><pubDate>Sun, 01 Dec 2013 21:33:12 +0800</pubDate><description><![CDATA[我们写应用程序的时候，有时候需要创建一个对话框，也就是Dialog,一般我们在程序里之间new一个Dialog，然后调用
dialog的show方法显示处理，这个过程到底是怎样的呢？
我们就从构造方法看起：
注：源码是4.3_r2.1的。


我们一般调用这个构造函数，然后调用重载的构造方法：




接着继续调用重载的构造方法：




默认createConte]]></description><category></category></item><item><title><![CDATA[android中创建应用窗口]]></title><link>https://blog.youkuaiyun.com/com360/article/details/17045885</link><guid>https://blog.youkuaiyun.com/com360/article/details/17045885</guid><author>com360</author><pubDate>Sat, 30 Nov 2013 20:29:51 +0800</pubDate><description><![CDATA[如前面的那篇帖子所述，每个应用窗口对应一个Activity，所以要创建应用窗口的话，首先要创建Activity。
在Context与Activity的关系那篇帖子中也讲解了Activity的创建过程，我下面就直接上源码，直接加一些
必要的注释，如果不明白的，可以自行查看源码，就不对每一句代码一一解释了。


ps：技术能力有限，难免会有错误，敬请各位指正，感谢...


大体步骤入]]></description><category></category></item><item><title><![CDATA[Andriod中的Context理解与分析]]></title><link>https://blog.youkuaiyun.com/com360/article/details/16340613</link><guid>https://blog.youkuaiyun.com/com360/article/details/16340613</guid><author>com360</author><pubDate>Fri, 15 Nov 2013 15:13:47 +0800</pubDate><description><![CDATA[大家在应用程序开发的时候会经常遇到Context，也经常使用，那怎么理解Context呢？



在做Web开发的时候也会有一个Context，一般翻译“成上下文”,也就是代表整个程序运行的环境，直到进程结束之后。
那么Android中的Context是不是这样的呢？Android中不是，Android中的Context可以理解成场景，场景是什么什么意思呢？
如果把Android程序的]]></description><category></category></item><item><title><![CDATA[Android进程通信Binder(2)-Android系统服务与Binder]]></title><link>https://blog.youkuaiyun.com/com360/article/details/15339341</link><guid>https://blog.youkuaiyun.com/com360/article/details/15339341</guid><author>com360</author><pubDate>Mon, 11 Nov 2013 15:50:33 +0800</pubDate><description><![CDATA[当我们在编写咱们的应用程序的时候，有时候需要调用系统服务，做一些我们需要做的工作，比如调用输入法的服务，位置服务，Wifi服务等。


首先大家要知道，这些服务不是通过startService（）的方式启动的，是操作系统在开机的时候或者在需要的时候通过另一种方式启动的，后面的博客中国会讲到，也可以自行在网上查一下。
   
 我们调用系统服务的时候试通过getSystemService(]]></description><category></category></item><item><title><![CDATA[Android进程通信Binder(1)-Binder进程通信的思想]]></title><link>https://blog.youkuaiyun.com/com360/article/details/15336121</link><guid>https://blog.youkuaiyun.com/com360/article/details/15336121</guid><author>com360</author><pubDate>Mon, 11 Nov 2013 11:18:35 +0800</pubDate><description><![CDATA[在android中Binder用于完成进程间通信，Binder工作在Linux层，属于一个驱动，只是这个驱动不需要硬件，其操作的硬件基于某一小端内存。从线程的角度来讲，Binder驱动代码运行在内核态，客户端程序调用Binder是通过系统调用完成的。


Binder是一种架构，这种架构提供了服务端接口、Binder驱动、客户端接口三个模块。

服务端：一个服务端实际上就是一个Binde]]></description><category></category></item><item><title><![CDATA[Android异步消息处理]]></title><link>https://blog.youkuaiyun.com/com360/article/details/14455479</link><guid>https://blog.youkuaiyun.com/com360/article/details/14455479</guid><author>com360</author><pubDate>Thu, 07 Nov 2013 18:03:10 +0800</pubDate><description><![CDATA[android异步消息 Handler Messagequeue Looper]]></description><category></category></item><item><title><![CDATA[JNI调用机制]]></title><link>https://blog.youkuaiyun.com/com360/article/details/14164247</link><guid>https://blog.youkuaiyun.com/com360/article/details/14164247</guid><author>com360</author><pubDate>Tue, 05 Nov 2013 12:59:24 +0800</pubDate><description><![CDATA[JNI android ndk]]></description><category></category></item><item><title><![CDATA[android基于类装载器DexClassloader设计“插件框架”]]></title><link>https://blog.youkuaiyun.com/com360/article/details/14127395</link><guid>https://blog.youkuaiyun.com/com360/article/details/14127395</guid><author>com360</author><pubDate>Mon, 04 Nov 2013 16:44:33 +0800</pubDate><description><![CDATA[@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        useDexClassLoader2();
    }
    @]]></description><category></category></item></channel></rss>