<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jancyliu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jancyliu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jancyliu]]></copyright><item><title><![CDATA[常用正则表达式]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/10182649</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/10182649</guid><author>jancyliu</author><pubDate>Thu, 22 Aug 2013 14:56:34 +0800</pubDate><description><![CDATA[常用正则表达式
　　正则表达式用于字符串处理、表单验证等场合，实用高效。现将一些常用的表达式收集于此，以备不时之需。

匹配中文字符的正则表达式： [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内)：[^/x00-/xff]

应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）

String.prototype.len=function(){re]]></description><category></category></item><item><title><![CDATA[如何让自己写的apk获得系统权限]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/10097977</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/10097977</guid><author>jancyliu</author><pubDate>Tue, 20 Aug 2013 10:24:43 +0800</pubDate><description><![CDATA[第一个方法简单点不过需要在Android系统源码的环境下用make来编译
 1. 在应用程序的AndroidManifest.xml中的manifest节点中加入 android:sharedUserIdandroid.uid.system这个属性。


 2. 修改Android.mk文件加入LOCAL_CERTIFICATE
 : platform这一行


 3. 使用mm命]]></description><category></category></item><item><title><![CDATA[让Android程序获得系统的权限，实现关机重启，静默安装等功能]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/9196185</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/9196185</guid><author>jancyliu</author><pubDate>Fri, 28 Jun 2013 13:47:24 +0800</pubDate><description><![CDATA[原文出自：http://www.cnblogs.com/welenwho/archive/2012/05/10/2494984.html


       android想要获得系统权限有几种途径,一种就是你的程序固化的系统中,这种方式可以通过将apk放到rom中/system/app中然后刷机即可,或者是在你的程序root后通过root文件管理器将apk放到改目录下.第二种就是你的程序必须]]></description><category></category></item><item><title><![CDATA[雅虎各国天气代码地址]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/9176295</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/9176295</guid><author>jancyliu</author><pubDate>Wed, 26 Jun 2013 10:36:38 +0800</pubDate><description><![CDATA[加拿大的
http://www.edg3.co.uk/snippets/weather-location-codes/canada/

中国的
http://www.edg3.co.uk/snippets/weather-location-codes/china/


查找其他国家的修改后面的国家名就可以了。]]></description><category></category></item><item><title><![CDATA[android中设置默认语言 默认时区]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/9173043</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/9173043</guid><author>jancyliu</author><pubDate>Tue, 25 Jun 2013 19:31:36 +0800</pubDate><description><![CDATA[1. 设置默认时区


PRODUCT_PROPERTY_OVERRIDES += \
        persist.sys.timezone=Asia/Shanghai\
注：搜索“persist.sys.timezone”，并更改其值


persist.sys.timezone值域
•Marshall Islands              马绍尔群岛]]></description><category></category></item><item><title><![CDATA[Android 系统添加第三方apk到data/app]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/9170243</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/9170243</guid><author>jancyliu</author><pubDate>Tue, 25 Jun 2013 15:42:58 +0800</pubDate><description><![CDATA[对于第三方apk预装入系统时如果将apk装入system/app目录下，由于第三方apk带有自己的.so文件，此时会出现apk无法打开的情况。
解决方法：
1：解压apk,将里面的.so文件放入device某个文件夹下，
  例如我们4.2box的平台：\rk3066box_4.2.2_r1\device\rockchip\rk30sdk\apk目录下新建一个目录realtoplib,在此目]]></description><category></category></item><item><title><![CDATA[Android执行shell脚本]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/9114559</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/9114559</guid><author>jancyliu</author><pubDate>Mon, 17 Jun 2013 18:02:43 +0800</pubDate><description><![CDATA[1、如果是java程序执行shell脚本，那么在适当的地方加入下面的这段代码：（其中PATH是脚本所在目录，shellname.sh是所要执行的脚本名字）






        try {
                execCommand(". PATH/shellname.sh");   

                } catch (IOException]]></description><category></category></item><item><title><![CDATA[Android 从驱动到应用层添加代码流程]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/9112613</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/9112613</guid><author>jancyliu</author><pubDate>Mon, 17 Jun 2013 15:14:00 +0800</pubDate><description><![CDATA[一：Kernel层：
将s3c6410_leds.c文件放入\kernel\drivers\char目录下
修改 此目录下makefile文件 添加obj-y  +=  s3c6410_leds.o
 
二：HAL层：
将libtestled文件夹放入\hardware目录下
将led.h文件放入\hardware\libhardware\include\hardware目录下]]></description><category></category></item><item><title><![CDATA[Android JNI JByteArray传递byte数组到Java]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/9049597</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/9049597</guid><author>jancyliu</author><pubDate>Fri, 07 Jun 2013 17:27:14 +0800</pubDate><description><![CDATA[1：C语言char转JNI 中jByteArray 给java使用
int setjArraybyte(JNIEnv *env,jclass cls,jmethodID mid,char* pat)
{
        LOGE("callback to setjArraybyte");
jByteArray  jbarray = (*env)->NewByteArray(env,2);/]]></description><category></category></item><item><title><![CDATA[jni中char *的使用]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/9047061</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/9047061</guid><author>jancyliu</author><pubDate>Fri, 07 Jun 2013 14:04:04 +0800</pubDate><description><![CDATA[jni中如何返回char *这样的类型呢？自己也记录下，这里的是一个 传入jstring返回jbyteArray的方法。

extern "C" {

JNIEXPORT jbyteArray JNICALL
Java_com_xxx_xxx_xxx(JNIEnv*  env, jobject  thiz, jstring path)
{

    char *btPath = N]]></description><category></category></item><item><title><![CDATA[APP添加jar包在源码下编译]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/8986251</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/8986251</guid><author>jancyliu</author><pubDate>Tue, 28 May 2013 19:59:10 +0800</pubDate><description><![CDATA[1  :将forlinx_led.Jar包放到system/frameworks下
2：在所需要编译的App下的Android,mk文件中添加如下：LOCAL_JAVA_LIBRARIES := forlinx_led  framework （forlinx_led和framework代表两个jar文件,根据需要添加即可）
3：添加访问权限：
 增加文件forlinx_led_server.]]></description><category></category></item><item><title><![CDATA[gpio_direction_output 与 gpio_set_value]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/8983156</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/8983156</guid><author>jancyliu</author><pubDate>Tue, 28 May 2013 09:52:01 +0800</pubDate><description><![CDATA[gpio_set_value（port_num,0/1）
 一般只是在这个GPIO口的寄存器上写上某个值，至于这个端口是否设置为输出，它就管不了！


而gpio_direction_output （port_num,0/1)，在某个GPIO口写上某个值之后，还会把这个端口设置为输出模式。

 因此，有人也许就会建议，把gpio_set_value这个函数直接去掉不用，是否可以，显然是]]></description><category></category></item><item><title><![CDATA[Android底层开发Led控制实验]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/8981198</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/8981198</guid><author>jancyliu</author><pubDate>Mon, 27 May 2013 18:33:30 +0800</pubDate><description><![CDATA[一、代码讲解
1、 编写HAL层代码
一般来说HAL moudle需要涉及的是三个关键结构体：
        struct hw_module_t;
        struct hw_module_methods_t;
        struct hw_device_t;
下面结合代码说明这3个结构的用法


文件：weiyan/hardware/modules/inclu]]></description><category></category></item><item><title><![CDATA[Android 添加JNI文件到源码中]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/8958895</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/8958895</guid><author>jancyliu</author><pubDate>Wed, 22 May 2013 10:36:05 +0800</pubDate><description><![CDATA[1：添加cpp文件到\frameworks\base\core\jni  
    对应目录下的Android.mk中添加编译目标
     LOCAL_SRC_FILES:= \ 标签下
     LOCAL_SHARED_LIBRARIES := \ 标签下


     对应目录下的AndroidRuntime.cpp文件中注册cpp文件
    如extern int reg]]></description><category></category></item><item><title><![CDATA[android.mk中引用第3方 jar包的方法]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/8956900</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/8956900</guid><author>jancyliu</author><pubDate>Tue, 21 May 2013 18:57:00 +0800</pubDate><description><![CDATA[在某一应用程序中有时候需要引用第三方jar包，那么怎么才能在编译app的时候把该jar包引入进入呢？
在该app下的Android.mk文件中添加如下语句：
------------------------------start-----------------------------------------------
LOCAL_PATH := $(call my-dir)
inclu]]></description><category></category></item><item><title><![CDATA[Android 添加系统串口服务步骤]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/8954896</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/8954896</guid><author>jancyliu</author><pubDate>Tue, 21 May 2013 13:51:11 +0800</pubDate><description><![CDATA[系统服务实际上是调用了远程Bind对象进行操作
1：添加aidl文件到 framworks/base/core/java/android/hardware/ISerialManager.aidl//这个文件是需要自己现实的


2：编译脚本中添加申明
  frameworks/base/Android.mk:     core/java/android/hardware/ISerialM]]></description><category></category></item><item><title><![CDATA[Android 设备上实现串口的移植]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/8950655</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/8950655</guid><author>jancyliu</author><pubDate>Mon, 20 May 2013 15:20:28 +0800</pubDate><description><![CDATA[项目需要，要实现在Android中实现串口的收发功能，有几种方法可以参考使用。

1. 标准的Android HAL层思想，把串口的功能加入framework的API中（类似于android中sensor的实现）

    a. 确保驱动层中基于tty的串口驱动可以正常read、write、poll数据，当然了，也可以自己写一个字符驱动来实现串口的读写功能。

    b. 在BSP的]]></description><category></category></item><item><title><![CDATA[Android开发，模拟器使用PC的串口]]></title><link>https://blog.youkuaiyun.com/jancyliu/article/details/8950484</link><guid>https://blog.youkuaiyun.com/jancyliu/article/details/8950484</guid><author>jancyliu</author><pubDate>Mon, 20 May 2013 14:56:31 +0800</pubDate><description><![CDATA[Android开发，模拟器是可以使用PC的串口的，只是我们需要在命令行启动模拟器，并且指定要挂载的串口，命令格式如下：
 emulator -qemu -serial COM1 如果要启动名字为android2.1的虚拟机，则执行以下命令： emulator @android15r1 -qemu -serial COM1 启动后，在dev里面会有ttyS0，ttyS1，ttyS2。其中ttyS2]]></description><category></category></item></channel></rss>