<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangjippp的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangjippp</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangjippp]]></copyright><item><title><![CDATA[踩坑pf4j之差点摔电脑]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/109343231</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/109343231</guid><author>wangjippp</author><pubDate>Fri, 16 Jul 2021 16:12:40 +0800</pubDate><description><![CDATA[今天


]]></description><category></category></item><item><title><![CDATA[app专属存储空间目录访问]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/107686193</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/107686193</guid><author>wangjippp</author><pubDate>Thu, 30 Jul 2020 11:22:52 +0800</pubDate><description><![CDATA[应用专属存储空间：其他应用无法访问空间下的目录、文件，应用可以存储专属自己的文件数据。用户卸载应用时，系统会移除此空间下的所有数据。


访问内部存储空间：getFilesDir()、openFileOutput()、openFileInput()、getDir()、getCacheDir()、File.createTempFile()
外部存储：getExternalFilesDir()、getExternalCacheDir()

查询可用空间: StorageStateManager.getFreeB]]></description><category></category></item><item><title><![CDATA[app运行时系统配置发生改变，不重启Activity]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/107515954</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/107515954</guid><author>wangjippp</author><pubDate>Wed, 22 Jul 2020 16:09:44 +0800</pubDate><description><![CDATA[如果需要在配置发生改变时（如竖屏变横屏），不重启Activity，则需要在AndroidManifest文件中为该Activity添加configChanges属性，这样在配置改变时机会回调onConfigurationChanged()，无需重启Activity。
  注意，此种方式虽然不会重启Activity，但与配置所对应的资源也不会被系统自动加载，仍会使用配置改变前的资源文件，需要你在onConfigurationChanged方法方法中自行处理配置改变。


...]]></description><category></category></item><item><title><![CDATA[String、StringBuffer、StringBuilder的异同]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/105791923</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/105791923</guid><author>wangjippp</author><pubDate>Mon, 27 Apr 2020 15:38:52 +0800</pubDate><description><![CDATA[1、执行速度的比较：StringBuilder &gt; StringBuffer &gt; String;

2、String是不可变对象，对string对象的任何修改都会新生成一个string对象，变量将会指向新的string对象，原string对象保持不变；

3、StringBuffer、StringBuilder是可变对象，内部维护char[]，它们的修改操作都是在char[]上进行；
...]]></description><category></category></item><item><title><![CDATA[Android应用安全防护4个步骤]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/105678770</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/105678770</guid><author>wangjippp</author><pubDate>Wed, 22 Apr 2020 12:22:37 +0800</pubDate><description><![CDATA[1、混淆：代码混淆和资源混淆。apk被反编译后增加代码阅读难度，同时也能减少apk体积；

2、签名保护：在应用入口处增加签名校验，防止apk被二次打包；

3、手动注册native方法：通过registerNative在native层注册native方法，可以映射c中的方法名和java

中的方法名，增加so文件被破解后的阅读难度；

4、反调试检测：被调试的进程会在/proc/[myPid]/...]]></description><category></category></item><item><title><![CDATA[AndroidStudio NDK开发配置CMakeList.txt]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/105632732</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/105632732</guid><author>wangjippp</author><pubDate>Mon, 20 Apr 2020 13:28:05 +0800</pubDate><description><![CDATA[记录NDK开发时如何配置CMakeList.txt文件，在模块的src目录下新建CMakeList.txt文件；


1、在CMakeLists文件中指定cmake版本：
    cmake_minimum_required(VERSION 3.4.1)

2、指定cmake项目的名称
    PROJECT(music-player)

3、确定头文件的目录
    include_...]]></description><category></category></item><item><title><![CDATA[Android Service的onStartCommand方法的返回值]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/104016312</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/104016312</guid><author>wangjippp</author><pubDate>Fri, 17 Jan 2020 11:18:16 +0800</pubDate><description><![CDATA[Service中onStartCommand返回值详解：
1、START_STICKY：当service已经启动，并且执行过onStartCommand，如果此时service被系统杀掉，那么service离开开始状态，同时不会保留分配到的Intent。稍后，系统将会尝试重新创建service。由于之前的service处于开始状态，所以在创建service实例后，onStartCommand方法一...]]></description><category></category></item><item><title><![CDATA[Android aar包修改代码后重新打包]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/104014380</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/104014380</guid><author>wangjippp</author><pubDate>Fri, 17 Jan 2020 09:52:59 +0800</pubDate><description><![CDATA[修改aar包代码的几个步骤：

1、解压出arr包：unzip xxx.aar -d tempFolder

2、找到classes.jar文件，并使用jd-gui查看代码，找到需要修改的文件；

3、打开Android Studio，新建同路径同名文件，并把代码复制到里面，同时，导入aar解决依赖问题；

4、修改完代码后，build一下，从/build/intermediates/javac/...]]></description><category></category></item><item><title><![CDATA[Android Webview入坑记录之Javascript回调]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/103986287</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/103986287</guid><author>wangjippp</author><pubDate>Wed, 15 Jan 2020 11:46:26 +0800</pubDate><description><![CDATA[业务需求，原生代码调用H5页的JS方法，并且js方法的参数带有json串。

坑：如果json串是被Uri.encode过，那么调用webview.loadUrl（“js方法”）；那么被作为js方法参数的json将会被webview解码decode。而我们的需求是要拿到原始的json串。

一翻度娘排查，发现在4.4以上的系统需要使用evaluateJavascript（）方法回调js，这样才能在...]]></description><category></category></item><item><title><![CDATA[Android Webview 调起系统相机、相册]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/103953900</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/103953900</guid><author>wangjippp</author><pubDate>Mon, 13 Jan 2020 14:34:47 +0800</pubDate><description><![CDATA[公司有个业务需求，需要在H5页中可以分别调起相同中的相机、相册。拿到该H5页看了一下,H5中调起相机和打开相册的源码分别是：


#调起相机
&lt;input type="file" accept="image/*" capture="camera"/&gt;

#打开相册
&lt;input type="file" accept="image/*" multiple="multiple"/&g...]]></description><category></category></item><item><title><![CDATA[Android中子线程更新UI的几种方式]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/103909206</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/103909206</guid><author>wangjippp</author><pubDate>Thu, 09 Jan 2020 17:01:40 +0800</pubDate><description><![CDATA[1、Handler

先来看下官方对Handler的描述


 A Handler allows you to send and process {@link Message} and Runnable
 objects associated with a thread's {@link MessageQueue}.  Each Handler
 instance is associated wi...]]></description><category></category></item><item><title><![CDATA[android xml文件的解析方法DOM、XmlPull、SAX]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/103901577</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/103901577</guid><author>wangjippp</author><pubDate>Thu, 09 Jan 2020 11:32:03 +0800</pubDate><description><![CDATA[1、XML是什么？

XML是一种可扩展标记语言，其文档结构被设计成树型结构，主要用于数据信息的描述和存储、携带数据和交换数据，通过XML，可以在不兼容的系统之间交换数据。

2、在Android中怎样解析XML文件


			         优点
			         缺点
		DOM
			
			1.XML树在内存中完整存储,因此可以直接修改...]]></description><category></category></item><item><title><![CDATA[Android中Serializable和Parcelable序列化对象]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/50839299</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/50839299</guid><author>wangjippp</author><pubDate>Wed, 09 Mar 2016 22:07:45 +0800</pubDate><description><![CDATA[本文转载自：http://www.jb51.net/article/79933.htm


本文详细对Android中Serializable和Parcelable序列化对象进行学习，具体内容如下
学习内容：
1.序列化的目的
2.Android中序列化的两种方式
3.Parcelable与Serializable的性能比较
4.Android中如何使用Parcelable进行序列]]></description><category></category></item><item><title><![CDATA[Android动画基本使用]]></title><link>https://blog.youkuaiyun.com/wangjippp/article/details/50452346</link><guid>https://blog.youkuaiyun.com/wangjippp/article/details/50452346</guid><author>wangjippp</author><pubDate>Sun, 03 Jan 2016 20:08:46 +0800</pubDate><description><![CDATA[一、Frame Animation 帧动画
1、在res/drawable/目录下新建xx.xml文件，root element为&lt;animation-list&gt;，引入需要播放的帧图片：


&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;animation-list xmlns:android="http://schemas.andr...]]></description><category></category></item></channel></rss>