<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[divaid的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/divaid</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; divaid]]></copyright><item><title><![CDATA[一些小工具总结]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/121507894</link><guid>https://blog.youkuaiyun.com/divaid/article/details/121507894</guid><author>divaid</author><pubDate>Wed, 24 Nov 2021 09:27:39 +0800</pubDate><description><![CDATA[1.在线二维码生成与解析：
网址：http://load_star.gitee.io/qrcode/qrcode.html

注：可在链接后追加参数如http://load_star.gitee.io/qrcode/qrcode.html?content=helloqrcode直接跳转生成。
效果：

代码地址：https://gitee.com/load_star/qrcode
2.在线计算器：
网址：https://load_star.gitee.io/htmlminifuncs/calculator.]]></description><category></category></item><item><title><![CDATA[No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier；]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/121154062</link><guid>https://blog.youkuaiyun.com/divaid/article/details/121154062</guid><author>divaid</author><pubDate>Thu, 04 Nov 2021 23:50:52 +0800</pubDate><description><![CDATA[问题背景：
由于使用了宜搭平台作为后台数据存储的地方，而调用宜搭的接口要接入其sdk。但是其xxpt.gateway.shared.client-1.1.4.aar包使用了HttpClient来实现网络访问的，但是在android9时HttpClient被完全移除了，但是这个类还在sdk中而且还基本内容都被删除了：

package org.apache.http.conn.ssl;

/**
 * The ALLOW_ALL HostnameVerifier essentially turns hostn]]></description><category></category></item><item><title><![CDATA[pc端无线传文件到手机]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/121094178</link><guid>https://blog.youkuaiyun.com/divaid/article/details/121094178</guid><author>divaid</author><pubDate>Tue, 02 Nov 2021 09:59:35 +0800</pubDate><description><![CDATA[实现思路：

pc端与手机端处于同一网络；
pc端启动本地服务；
查看pc端ip地址；
手机端访问文件；




具体实现：

下载server压缩文件：
mac
windows

解压到想要放置的目录里，文件结构（忽略投件箱）：


将要传输的文件放到public文件夹下，然后点击main启动服务即可：


查看pc上的ip，mac：ifconfig， windows：ipconfig；查出之后可以到：http://load_star.gitee.io/qrcode/qrcode.html上生成二维码，手]]></description><category></category></item><item><title><![CDATA[递归算法优化]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/121027684</link><guid>https://blog.youkuaiyun.com/divaid/article/details/121027684</guid><author>divaid</author><pubDate>Fri, 29 Oct 2021 23:13:42 +0800</pubDate><description><![CDATA[普通递归算法，如累加：
#include&lt;stdio.h&gt;
int addSum(int num){
  if(num == 1) {
    return 1;  
  }else {
    return addSum(num - 1) + num;
  }
}

int main(){
  printf("5 addSum is %d", addSum(5));
  return 0;
}

每次计算一个数的累加，前面的数字都要计算

...]]></description><category></category></item><item><title><![CDATA[Android直接通过graldew脚本打包]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/120935922</link><guid>https://blog.youkuaiyun.com/divaid/article/details/120935922</guid><author>divaid</author><pubDate>Sun, 24 Oct 2021 16:57:11 +0800</pubDate><description><![CDATA[背景：
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android打包构建apk或aar时一般都是通过指令：gradlew assembleDebug/assembleRelease的，android studio也是调用的这个指令。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在此背景下自己也写一个执行文件调用指令打包，从而不用打开编译器，使用场景：

远程打包构建，如：服务处自动打包；
本地微小改动，不想打开studio时；
大牛直接使用文本工具开]]></description><category></category></item><item><title><![CDATA[app与html交互方式]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/120753909</link><guid>https://blog.youkuaiyun.com/divaid/article/details/120753909</guid><author>divaid</author><pubDate>Wed, 13 Oct 2021 22:31:13 +0800</pubDate><description><![CDATA[html 向native传递数据

1：自定义scheme方式，在app端对应的方法拦截url判断是否应该处理；
2：通过html调用alert、confirm、prompt方法，native拦截方法并重写逻辑
3：通过定义jsBrige方式（android），JS注入对象（iOS），html调用相关方法


native向html传递数据

1: android通过evaluateJavascript，ios通过stringByEvaluatingJavaScriptFromString调用js方法及获.]]></description><category></category></item><item><title><![CDATA[Android自定义字母索引View]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/120753625</link><guid>https://blog.youkuaiyun.com/divaid/article/details/120753625</guid><author>divaid</author><pubDate>Wed, 13 Oct 2021 22:18:24 +0800</pubDate><description><![CDATA[代码：

import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.util.AttributeSet
import android.view.MotionEvent
import android.view.MotionEvent.*
import android.view.View
impor]]></description><category></category></item><item><title><![CDATA[adb导出anr文件Permission问题解决]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/120326130</link><guid>https://blog.youkuaiyun.com/divaid/article/details/120326130</guid><author>divaid</author><pubDate>Thu, 16 Sep 2021 11:57:06 +0800</pubDate><description><![CDATA[导出android的anr文件直接使用adb pull命令时可能会遇到permission deny问题：
adb: error: failed to copy ‘/data/anr/anr_2021-09-16-11-09-18-309’ to ‘./anr_2021-09-16-11-09-18-309’: remote open failed: Permission denied
可通过：
adb bugreport ~/desktop/

命令导出bug压缩包，然后解压缩就可以拿到日志了。


..]]></description><category></category></item><item><title><![CDATA[c语言生成Android的smallestWidth适配文件]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/120279957</link><guid>https://blog.youkuaiyun.com/divaid/article/details/120279957</guid><author>divaid</author><pubDate>Tue, 14 Sep 2021 09:09:17 +0800</pubDate><description><![CDATA[mac执行文件：
下载链接

执行文件生成：
file.out 375 360 384 392 400 410 411 432 480 533 592 600 640 662 720 768 800 811 820 960 1024 1280 1365



代码（需要时可自行修改dp及sp范围）：
 
#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;string.h&gt;
#include &lt;sys/stat.h&gt;
#]]></description><category></category></item><item><title><![CDATA[html元素添加点击效果]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/119394994</link><guid>https://blog.youkuaiyun.com/divaid/article/details/119394994</guid><author>divaid</author><pubDate>Wed, 04 Aug 2021 22:46:37 +0800</pubDate><description><![CDATA[代码：
/*用于添加带点击效果的点击事件，element需添加data-pressed属性，
放置点击时候的class样式，
建议element使用同一个事件，通过id分发逻辑。
使用示例：
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;style type="text/css"&gt]]></description><category></category></item><item><title><![CDATA[java.lang.NoClassDefFoundError: javax/activation/MimeTypeParseException问题解决]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/119343090</link><guid>https://blog.youkuaiyun.com/divaid/article/details/119343090</guid><author>divaid</author><pubDate>Tue, 03 Aug 2021 09:43:38 +0800</pubDate><description><![CDATA[最近在构建打包的时候报了这个错误：
java.lang.NoClassDefFoundError: javax/activation/MimeTypeParseException；
原因：
替换了jdk导致的，原本是使用的自己配置的jdk环境，后来换成了studio自带的jdk，两个版本不同自带的应该是剔除了这些类的。

解决方法：
1.替换回原来的jdk路径；
2.把相关依赖添加进来：
compile "javax.xml.bind:jaxb-api:2.3.0"
compile "javax.activ]]></description><category></category></item><item><title><![CDATA[EventBus简化]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/119117868</link><guid>https://blog.youkuaiyun.com/divaid/article/details/119117868</guid><author>divaid</author><pubDate>Mon, 26 Jul 2021 20:45:55 +0800</pubDate><description><![CDATA[仿EventBus写的事件总线工具，主要由MyEventBus实现事件订阅post等逻辑，其他EventBusException、Subscribe、SubscriberMethod、ThreadMode直接从EventBus拿来用的。


实现：







MyEventBus代码：
package com.david.core.event;

import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
]]></description><category></category></item><item><title><![CDATA[Html实现极简计算器]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/118312129</link><guid>https://blog.youkuaiyun.com/divaid/article/details/118312129</guid><author>divaid</author><pubDate>Mon, 28 Jun 2021 21:01:06 +0800</pubDate><description><![CDATA[效果：

代码：
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
	&lt;style&gt;
		text{
			width:120px;
			height:50px;
			background: #888888;
			border-radius: 10px;
			display: block;
			float: left;
			text-align: center;
			line-height: 50px;
			margin-left: ]]></description><category></category></item><item><title><![CDATA[ViewStub详解]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/116131216</link><guid>https://blog.youkuaiyun.com/divaid/article/details/116131216</guid><author>divaid</author><pubDate>Sun, 25 Apr 2021 17:40:22 +0800</pubDate><description><![CDATA[首先上源码：
package android.view;

import android.annotation.IdRes;
import android.annotation.LayoutRes;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widg]]></description><category></category></item><item><title><![CDATA[html实现滑动拼图小游戏]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/115559138</link><guid>https://blog.youkuaiyun.com/divaid/article/details/115559138</guid><author>divaid</author><pubDate>Fri, 09 Apr 2021 20:45:18 +0800</pubDate><description><![CDATA[实效效果：


代码实现：
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Jigsaw&lt;/title&gt;
    &lt;style&gt;
        .list_item {
            float: left;
        }

        img{
            transition-du]]></description><category></category></item><item><title><![CDATA[Android竖屏界面显示横向的view或dialog]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/110448487</link><guid>https://blog.youkuaiyun.com/divaid/article/details/110448487</guid><author>divaid</author><pubDate>Sun, 07 Mar 2021 18:32:10 +0800</pubDate><description><![CDATA[1.通过view旋转实现；
2.通过使用图片控件实现（让UI切横屏的图片放入需要的控件中）；
3.使用canvas自己绘制控件，自己实现操控事件；

]]></description><category></category></item><item><title><![CDATA[android的native请求与本地html请求时间对比]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/114023450</link><guid>https://blog.youkuaiyun.com/divaid/article/details/114023450</guid><author>divaid</author><pubDate>Wed, 24 Feb 2021 15:30:39 +0800</pubDate><description><![CDATA[接口数据大小52k
native使用retrofit+rxjava框架：
第一次：
耗时：350ms
第二次：
耗时：341ms
第三次：
耗时：324ms
第四次：
耗时：450ms
第五次：
耗时：487ms
第六次：
耗时：451ms
第七次：
耗时：361ms
第八次：
耗时：340ms
第九次：
耗时：412ms
第十次：
耗时：501ms
平均：401.7ms


assets中的html使用原生ajax请求同一接口：
第一次：
耗时：410ms
第二次：
耗时：662ms
第三次：
耗时：43]]></description><category></category></item><item><title><![CDATA[Dialog去掉默认白色背景]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/112475322</link><guid>https://blog.youkuaiyun.com/divaid/article/details/112475322</guid><author>divaid</author><pubDate>Mon, 11 Jan 2021 16:38:02 +0800</pubDate><description><![CDATA[问题：
自定义的dialog在布局中设置了背景，但是底部一直有白色的一层背景,实际为dialog中mWindow的背景。
解决方法：
在自定义dialog的构造方法中添加下面代码即可：
getWindow().setBackgroundDrawableResource(android.R.color.transparent);//去掉白色背景



...]]></description><category></category></item><item><title><![CDATA[一个简单的LruImageLoader]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/112142636</link><guid>https://blog.youkuaiyun.com/divaid/article/details/112142636</guid><author>divaid</author><pubDate>Sun, 03 Jan 2021 17:51:18 +0800</pubDate><description><![CDATA[1.代码：

/**
 * TODO 添加图片显示动画
 * 加密图片加载及下载
 * 使用示例：
 * //必须先调用init
 * LruImageLoader.getInstance().init(getApplication());
 *
 * LruImageLoader.getInstance().loadCacheImage("https://pics2.baidu.com/feed/d043ad4bd11373f07cfedf093f1d9bfcfaed0479.jpeg?token=de1]]></description><category></category></item><item><title><![CDATA[PopupWindow在7.0以上版本showAsDropDown失效问题解决]]></title><link>https://blog.youkuaiyun.com/divaid/article/details/110431101</link><guid>https://blog.youkuaiyun.com/divaid/article/details/110431101</guid><author>divaid</author><pubDate>Tue, 01 Dec 2020 14:46:04 +0800</pubDate><description><![CDATA[解决方案：
1.显示前设置固定高度为屏幕底部到控件距离：
TextView title = findViewById(R.id.popup_title);
int[] location = new int[2];
                    title.getLocationOnScreen(location);
                    int x = location[0];
                    int y = location[1];
          ]]></description><category></category></item></channel></rss>