<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zhan10001的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/zhan10001</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; zhan10001]]></copyright><item><title><![CDATA[异常：Adreno-GSL: ＜gsl_memory_alloc_pure:2297＞: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl fai，无日志闪退问题排查]]></title><link>https://blog.csdn.net/zhan10001/article/details/113976258</link><guid>https://blog.csdn.net/zhan10001/article/details/113976258</guid><author>zhan10001</author><pubDate>Tue, 23 Feb 2021 10:53:47 +0800</pubDate><description><![CDATA[Adreno-GSL: &lt;gsl_memory_alloc_pure:2297&gt;: GSL MEM ERROR: kgsl_sharedmem_alloc ioctl failed.

Adreno-GSL: &lt;sharedmem_gpuobj_alloc:2713&gt;: sharedmem_gpumem_alloc: mmap failed errno 12 Out of memory

这个异常是硬件加速兼容性导致的问题。出现场景是用webview打开一个3d的网页，有时会出现异常]]></description><category></category></item><item><title><![CDATA[大项目框架：主页ViewPager包含WebView，滑动冲突解决方案]]></title><link>https://blog.csdn.net/zhan10001/article/details/113737421</link><guid>https://blog.csdn.net/zhan10001/article/details/113737421</guid><author>zhan10001</author><pubDate>Sun, 07 Feb 2021 11:05:03 +0800</pubDate><description><![CDATA[1、主流的主页都是ViewPager+Fragment。而且往往Fragment中会使用WebView，而WebView如果有左右滑动的控件，会与主页ViewPager滑动事件冲突。

2、解决方案，监听WebView滑动事件，当超过左右滑动边际时，交给父控件处理。

关键代码：requestDisallowInterceptTouchEvent(false)

3、需要重写WebView，代码如下：


public class GGNoScrollWebView extends WebView {
  ]]></description><category></category></item><item><title><![CDATA[大项目框架：ViewPager重新可见setVisibility导致View不显示，并且禁止滑动事件]]></title><link>https://blog.csdn.net/zhan10001/article/details/113626647</link><guid>https://blog.csdn.net/zhan10001/article/details/113626647</guid><author>zhan10001</author><pubDate>Sun, 07 Feb 2021 10:47:39 +0800</pubDate><description><![CDATA[1
]]></description><category></category></item><item><title><![CDATA[大项目框架：一行代码快速实现圆角与圆形效果，无需自定义与资源设置，简洁高效实现效果]]></title><link>https://blog.csdn.net/zhan10001/article/details/113615006</link><guid>https://blog.csdn.net/zhan10001/article/details/113615006</guid><author>zhan10001</author><pubDate>Wed, 03 Feb 2021 17:10:05 +0800</pubDate><description><![CDATA[本文导航：

1、实现方式

2、说明与传统方式

正文

1、代码调用


 View view;
 UiHelper.setOutline(view,10);

//工具类方法
public class UiHelper {

    /**
     * 设置视图裁剪的圆角半径, 不支持5.0版本以下的系统
     * @param radius
     */
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public static void s]]></description><category></category></item><item><title><![CDATA[大项目框架：自定义LifeNextBus，代替RxJava响应事件处理，使用更简洁，更加灵活，减少jar引用]]></title><link>https://blog.csdn.net/zhan10001/article/details/113590653</link><guid>https://blog.csdn.net/zhan10001/article/details/113590653</guid><author>zhan10001</author><pubDate>Wed, 03 Feb 2021 11:30:51 +0800</pubDate><description><![CDATA[本文内容分为部分：

1、为啥不用rx

2、LifeNextBus 使用

3、LifeNextBus 代码

4、使用注意事项

正文：

1、为啥不用rx：

RX使用需要引用jar，为实现一个功能，引入太多代码。并且很难根据需求改变源码，不够灵活。

自定义实现响应事件处理100行代码即可，非常方便简单。传递数据指定类型反而不够灵活。

2、LifeNextBus 使用：

LifeNextBus.create(new LifeNextBus.Emitter() {
      @Ov...]]></description><category></category></item><item><title><![CDATA[Google Map签名与key配置快速解决方案]]></title><link>https://blog.csdn.net/zhan10001/article/details/102970245</link><guid>https://blog.csdn.net/zhan10001/article/details/102970245</guid><author>zhan10001</author><pubDate>Fri, 08 Nov 2019 11:37:57 +0800</pubDate><description><![CDATA[在集成了Google Map之后，在debug模式下测试一切正常，地图正常显示，都是签名打包后，运行app发现地图不显示了


原因就是，申请的google map API_KEY是放在了debug文件夹下，没有对应的release的 API_KEY


解决方式

1、build.gradle下添加manifestPlaceholders字段值

  buildTypes {
  ...]]></description><category></category></item><item><title><![CDATA[小米手机调用系统相册直接失败，无法显示bug]]></title><link>https://blog.csdn.net/zhan10001/article/details/98041673</link><guid>https://blog.csdn.net/zhan10001/article/details/98041673</guid><author>zhan10001</author><pubDate>Thu, 01 Aug 2019 11:36:29 +0800</pubDate><description><![CDATA[Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 101）

这段非常常规的代码，一般就是有个图片选择框跳出来接着，选择图片。但是在部分小米手机上选择相册之后直接返回失败，坑死了。请注意，不是代码问...]]></description><category></category></item><item><title><![CDATA[桌面快捷方式图标显示问题]]></title><link>https://blog.csdn.net/zhan10001/article/details/82836502</link><guid>https://blog.csdn.net/zhan10001/article/details/82836502</guid><author>zhan10001</author><pubDate>Tue, 25 Sep 2018 11:08:20 +0800</pubDate><description><![CDATA[1：addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, bm2); 改为
2：addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bm2); 
使用EXTRA_SHORTCUT_ICON_RESOURCE的话bm2必须为ShortcutIconResource对象。

第一种方式，如果不是传Sho...]]></description><category></category></item><item><title><![CDATA[解决 INSTALL FAILED CONFLICTING PROVIDER的问题方法]]></title><link>https://blog.csdn.net/zhan10001/article/details/80401566</link><guid>https://blog.csdn.net/zhan10001/article/details/80401566</guid><author>zhan10001</author><pubDate>Tue, 22 May 2018 09:56:54 +0800</pubDate><description><![CDATA[问题原因在Android中authority要求必须是唯一的，比如你在定义一个provider时需要为它指定一个唯一的authority。如果你在安装一个带有provider的应用时，系统会检查当前已安装应用的authority是否和你要安装应用的authority相同，如果相同则会弹出上述警告，并且安装失败。解决方案在定义provider是，使用软编码的形式，如下：&amp;lt;provider
  ...]]></description><category></category></item><item><title><![CDATA[android WebView 加载重定向页面无法后退快捷简单解决方案]]></title><link>https://blog.csdn.net/zhan10001/article/details/79756792</link><guid>https://blog.csdn.net/zhan10001/article/details/79756792</guid><author>zhan10001</author><pubDate>Fri, 30 Mar 2018 14:04:04 +0800</pubDate><description><![CDATA[在使用WebView的时候，我们一般都会设置WebViewClient ，重写shouldOverrideUrlLoading方法，让webView加载点击url，并return true。因为不这样设置，点击页面上的链接弹出浏览器[java] view plain copywebView.setWebViewClient(new WebViewClient() {        @Overrid...]]></description><category></category></item><item><title><![CDATA[WebView加载https页面不能正常显示，空白一片]]></title><link>https://blog.csdn.net/zhan10001/article/details/79654411</link><guid>https://blog.csdn.net/zhan10001/article/details/79654411</guid><author>zhan10001</author><pubDate>Thu, 22 Mar 2018 15:07:14 +0800</pubDate><description><![CDATA[　在使用WebView加载https资源文件时，如果认证证书不被Android认可，那么会出现无法成功加载对应资源问题。那么，我们就要针对这一状况作出对应的处理。在使用WebView的类中添加如下代码：// android 5.0以上默认不支持Mixed Content
if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.LOLLIPOP) {
...]]></description><category></category></item><item><title><![CDATA[上架小米市场，安装在小米4上被提示app是病毒，有恶意更新行为]]></title><link>https://blog.csdn.net/zhan10001/article/details/79606932</link><guid>https://blog.csdn.net/zhan10001/article/details/79606932</guid><author>zhan10001</author><pubDate>Mon, 19 Mar 2018 08:58:28 +0800</pubDate><description><![CDATA[经排查，是bomb的问题。必须本地引入jar，否则会报错。只有在小米4手机上会报病毒。原因未知，可以先通过小米云测试排查。]]></description><category></category></item><item><title><![CDATA[BottomNavigationView多个子项取消缩放效果]]></title><link>https://blog.csdn.net/zhan10001/article/details/79557403</link><guid>https://blog.csdn.net/zhan10001/article/details/79557403</guid><author>zhan10001</author><pubDate>Wed, 14 Mar 2018 17:12:02 +0800</pubDate><description><![CDATA[BottomNavigationView在超过3个以上子项时，显示成选择项放大，未选缩放的效果，不适合菜单导航，需要固定大小取消缩放。采用反射方法，如下：在初始化后调用方法： bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation);
        //默认 &amp;gt;3 的选中效果会影响V...]]></description><category></category></item><item><title><![CDATA[自定义view中bitmap.getwidth()方法报空指针]]></title><link>https://blog.csdn.net/zhan10001/article/details/79480794</link><guid>https://blog.csdn.net/zhan10001/article/details/79480794</guid><author>zhan10001</author><pubDate>Thu, 08 Mar 2018 10:29:58 +0800</pubDate><description><![CDATA[自定义view 的时候，在构造方法中初始化bitmap，一直报null。经过修改图片获取放在onDraw中，正常，原因未知。代码如下：@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    switchBackgroupBitmap=BitmapFactory.decodeResource(mCo...]]></description><category></category></item><item><title><![CDATA[安卓2.3版本生成so相关]]></title><link>https://blog.csdn.net/zhan10001/article/details/79092378</link><guid>https://blog.csdn.net/zhan10001/article/details/79092378</guid><author>zhan10001</author><pubDate>Thu, 18 Jan 2018 09:56:23 +0800</pubDate><description><![CDATA[转载自http://blog.csdn.net/wb175208/article/details/70155239；

图文非常详细，可操作。

1.创建一个工程，注意一定要勾选上这个Include C++ Support 
 
2.一路点击 【next】点击到最后的时候，采用默认就好了： 


3.点击【finish】之后，会报错：NDK not configured 
 ]]></description><category></category></item><item><title><![CDATA[网络数据加密3DES与RSA结合使用及注意点]]></title><link>https://blog.csdn.net/zhan10001/article/details/79084600</link><guid>https://blog.csdn.net/zhan10001/article/details/79084600</guid><author>zhan10001</author><pubDate>Wed, 17 Jan 2018 14:44:57 +0800</pubDate><description><![CDATA[在项目工程中，有时候需要对网络传输的数据进行加密。有多种方式，本文使用3DES与RSA加密结合使用。
基本流程如下：
1、假设客户端获取了用户名与密码，需要传给服务器；本文使用RSA工具类生成公钥月私钥，公钥用于客户端加密，私钥用于服务端解密。 
 String content="用户名+密码";
2、自定义3DES加密密钥和向量：
 // 密钥 ,至少24位
    private ]]></description><category></category></item><item><title><![CDATA[微信小坑：更换applicationId，微信WXPayEntryActivity多渠道打包配置问题。]]></title><link>https://blog.csdn.net/zhan10001/article/details/78793568</link><guid>https://blog.csdn.net/zhan10001/article/details/78793568</guid><author>zhan10001</author><pubDate>Wed, 13 Dec 2017 16:55:06 +0800</pubDate><description><![CDATA[网上这方面的介绍基本查不到，索性自己做测试，得到结论：微信支付和登陆共享，可以支持applicationId修改。
安卓微信支付开发中，需要在微信后台配置包名，取得是applicationId的值，并不是配置清单中的package。
但是有时候需要修改applicationId以便测试或者多渠道打包，这时候WXPayEntryActivity在清单文件中的配置就得相应改变。
方法是：根据ap]]></description><category></category></item><item><title><![CDATA[WebVie Posturl方式网页不正常问题解决]]></title><link>https://blog.csdn.net/zhan10001/article/details/78753394</link><guid>https://blog.csdn.net/zhan10001/article/details/78753394</guid><author>zhan10001</author><pubDate>Fri, 08 Dec 2017 16:58:26 +0800</pubDate><description><![CDATA[采用WebVie Posturl方式，所传递的参数有可能会出现空格，+号等字符的错误，需要进行UTF-8转码，处理如下：
1.参数加密，并去除空格。

String encryptedCcbParam = DESTool.encode(s1).replaceAll("\\s*", "");


2.通过utf-8编码，并将+\转化为可识别的字符。

encryptedCcbPara]]></description><category></category></item><item><title><![CDATA[安卓java时间格式化字母对照]]></title><link>https://blog.csdn.net/zhan10001/article/details/78752205</link><guid>https://blog.csdn.net/zhan10001/article/details/78752205</guid><author>zhan10001</author><pubDate>Fri, 08 Dec 2017 15:36:01 +0800</pubDate><description><![CDATA[字母 	日期或时间元素 	表示 	示例G 	Era 标志符 	Text 	ADy 	年 	Year 	1996; 96M 	年中的月份 	Month 	July; Jul; 07w 	年中的周数 	Number 	27W 	月份中的周数 	Number 	2D 	年中的天数 	Number 	189d 	月份中的天数 	Number 	10F 	月份中的星期 	Number 	2E 	星期中的天数]]></description><category></category></item><item><title><![CDATA[安卓文件存储权限管理三种目录]]></title><link>https://blog.csdn.net/zhan10001/article/details/78709203</link><guid>https://blog.csdn.net/zhan10001/article/details/78709203</guid><author>zhan10001</author><pubDate>Mon, 04 Dec 2017 14:10:15 +0800</pubDate><description><![CDATA[由于安卓6.0更新了权限管理，使用最新的SDK编译的时候，

缓存到自定义的目录下出现问题，因为没有获取对应的权限，

6.0以前的系统不需要获取权限，最快的方式是使用官方推荐的缓存地址




（不推荐）

public static String PATH = Environment.getExternalStorageDirectory().getAbsolutePat]]></description><category></category></item></channel></rss>