<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yangaiyu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yangaiyu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yangaiyu]]></copyright><item><title><![CDATA[adb 通过wifi连接手机]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/130886250</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/130886250</guid><author>yangaiyu</author><pubDate>Tue, 30 May 2023 16:38:50 +0800</pubDate><description><![CDATA[3） 一根手机数据线，adb连接接通前，需要先连接上，给手机指定端口号；如果需要多个手机连接的话，端口号需要不同。（可以测试一下，adb disconnect 176.158.12.85:5555取消连接，然后重新连接）1）数据线连接电脑，正常连上手机端，adb devices 可以看到你的设备号。3）链接设备： adb connect 176.158.12.85:5555。2）adb tcpip 5555 （设置给当前设备一个端口号）4）成功后，拔掉数据线；1）手机打开开发者选项，打开USB调试。]]></description><category></category></item><item><title><![CDATA[Android与Vue怎么进行交互]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/130892166</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/130892166</guid><author>yangaiyu</author><pubDate>Fri, 26 May 2023 18:18:19 +0800</pubDate><description><![CDATA[JavaScript 代码中: window 是网页的 Window 实体，这个做前端开发的人都非常熟悉；AndroidObj 是 Android 端给 WebView 提供的一个实体，Android 会将这个实体赋给 WebView 的 window；相信很多没有经验的人对此束手无策，为此本文总结了问题出现的原因和解决方法，通过这篇文章希望你能解决这个问题。如果前端用的是 Vue 框架，那么如果你在 js 脚本上直接写一个方法，Android 是调用不到的，无论是写在那个位置。]]></description><category></category></item><item><title><![CDATA[Android getDrawable 直接使用 提示要求API为21 的处理方法]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/130880613</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/130880613</guid><author>yangaiyu</author><pubDate>Fri, 26 May 2023 09:57:21 +0800</pubDate><description><![CDATA[具体原因我们可以通过源码看到,前面添加了ContextCompat 之后 源码里面添加了判断。这个处理方法可以在getDrawable 前面添加  ContextCompat 如下。这样就没有报错提示了。]]></description><category></category></item><item><title><![CDATA[Typora 版本过低,mac版本临时解决方案]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/129614669</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/129614669</guid><author>yangaiyu</author><pubDate>Fri, 17 Mar 2023 11:00:07 +0800</pubDate><description><![CDATA[Typora]]></description><category></category></item><item><title><![CDATA[Android获取屏幕高度的坑]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/125211795</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/125211795</guid><author>yangaiyu</author><pubDate>Thu, 09 Jun 2022 21:59:53 +0800</pubDate><description><![CDATA[安卓手机想要获取屏幕高度，有以下几个方法：


第一个我们先不讲，因为实测和后面2、4基本一样，况且网上说的少用的也少一开始我用的是方法4（因为他看起来最简单），发现在一些全面屏手机上高度会少了十几个像素，在普通手机上是准确的。
后来发现主要是虚拟按键的问题，会将虚拟按键的高度忽略掉。点击去看到他的说明是问题就在这个available上了。同理，还有方法，在Android4.4之后会隐藏掉状态栏的高度，注释里还写了一大堆，像来自Activity的请求在多窗口模式下会小于物理高度（这又是另一个坑了）正在上传…]]></description><category></category></item><item><title><![CDATA[Android 动态更改View尺寸后，没有变，达不到想要的效果]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/124965651</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/124965651</guid><author>yangaiyu</author><pubDate>Wed, 25 May 2022 14:40:53 +0800</pubDate><description><![CDATA[一、场景： TabLayout + ViewPage. 使用NestedScrollView嵌套，滑动的时候Tab会被顶上去

二、达到效果的做法：

NestedScrollView
	
app:layout_behavior="@string/appbar_scrolling_view_behavior"
	
	包裹的LinerLayout增加 （共有三个属性，自行查询）
	
android:descendantFocusability="afterDescendants"
	
	TabLayou...]]></description><category></category></item><item><title><![CDATA[Fragment先进后出的栈管理模式]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/123225720</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/123225720</guid><author>yangaiyu</author><pubDate>Wed, 02 Mar 2022 11:35:27 +0800</pubDate><description><![CDATA[压栈

 FragmentManager fragmentManager = activity.getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        Fragment fragment = new MyFragment();
        fragment.setArguments(bundle);
       .]]></description><category></category></item><item><title><![CDATA[ADB——查看手机设备信息]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/120163863</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/120163863</guid><author>yangaiyu</author><pubDate>Tue, 07 Sep 2021 18:04:58 +0800</pubDate><description><![CDATA[查看设备信息

查看手机型号


adb shell getprop ro.product.model



查看电池状况




adb shell dumpsys battery

'''
Current Battery Service state:
  AC powered: false
  USB powered: true
  Wireless powered: false
  status: 2
  health: 2
  present: true
  level: 44
  scale: 1]]></description><category></category></item><item><title><![CDATA[自定义权限在不同签名下使用会报错，权限重复问题]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/116268507</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/116268507</guid><author>yangaiyu</author><pubDate>Thu, 29 Apr 2021 14:32:21 +0800</pubDate><description><![CDATA[解决方法：com.xxx.download.permissions.MY_BROADCAST 改为 ${applicationId}.permissions.MY_BROADCAST 修改代码中AndroidManifest.xml，以及代码中引用的；

反编译后，重新打包为module，打包aar，测试没问题；
反编译工具jd-gui-windows-1.6.6 ,用工具打开aar,File-Save All Sources 会把源码保存到本地，此时对应目录拷贝到所需模块即可。

参考：https://b]]></description><category></category></item><item><title><![CDATA[Android安全——客户端安全要点]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/114362615</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/114362615</guid><author>yangaiyu</author><pubDate>Thu, 04 Mar 2021 10:39:15 +0800</pubDate><description><![CDATA[一、前言：

近期facebook的隐私泄露事件再度唤起了公众对隐私的关注，在这个越来越重视个人隐私的时代里，安全早已是一个无法绕开的话题。

作为一个开发人员，必须具备安全意识，掌握基础的安全知识，为打造更加安全的应用做出努力。本文浅谈Android客户端的安全问题，涉及组件、WebView、存储、传输、日志、混淆、应用加固等安全漏洞及防护策略，运用更加合理的配置与防护措施来提高应用的安全级别。

二、组件安全：

规范安卓标准组件（Activity、Service、Receiver、Provider）的]]></description><category></category></item><item><title><![CDATA[androidx入坑]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/114029921</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/114029921</guid><author>yangaiyu</author><pubDate>Wed, 24 Feb 2021 17:30:55 +0800</pubDate><description><![CDATA[1. support-v4对应的兼容包




implementation  'androidx.legacy:legacy-support-v4:1.0.0'


2. 依次类推support-v13和 support-preference-v14



legacy-support-v13
legacy-preference-v14

3. support-v4包中有一个LocalBroadcastManager类


android.support.v4.content.LocalBroadca..]]></description><category></category></item><item><title><![CDATA[记录EventBus在Fragment复用时，发送消息发送多次问题（双层VierPage+TabLayout）]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/112667445</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/112667445</guid><author>yangaiyu</author><pubDate>Fri, 15 Jan 2021 15:06:53 +0800</pubDate><description><![CDATA[1. 需求


五个tab页面，子页面也有subTab的页面；

父级标题：tab + ViewPager(5个BaseFragment)   父级tab滑动与ViewPager关联的

子级标题：subtab + ViewPager(n个BaseFragment) 子级tab滑动与ViewPager关联的


2.问题1


有subTab页面，切换子标题没有更新，一直是第一次请求的副标题；数据请求混乱；   


3.错误方案1


请求数据需要父tab的position，没有...]]></description><category></category></item><item><title><![CDATA[git的冲突解决--git rebase之abort、continue、skip]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/112612221</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/112612221</guid><author>yangaiyu</author><pubDate>Thu, 14 Jan 2021 15:26:19 +0800</pubDate><description><![CDATA[git的冲突解决–git rebase之abort、continue、skip

原文转自：http://www.cnblogs.com/chenjunjie12321/p/6876220.html

（1）应用实例描述

假设在github或者gitoschina上建立了一个项目，默认分支为master分支，远程master分支上c.sh文件内容：
开发者A、B分别将项目拷贝到自己本地进行开发

某一天，开发者B提交c.sh，并且提交成功，
之后，开发者A在本地代码并没有和远程master分支的代码同步的]]></description><category></category></item><item><title><![CDATA[Git中tag标签的使用]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/112601362</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/112601362</guid><author>yangaiyu</author><pubDate>Thu, 14 Jan 2021 10:27:45 +0800</pubDate><description><![CDATA[一、什么是tag

tag是git版本库的一个标记，指向某个commit的指针。

tag主要用于发布版本的管理，一个版本发布之后，我们可以为git打上 v.1.0.1 v.1.0.2 ...这样的标签。

tag感觉跟branch有点相似，但是本质上和分工上是不同的：

tag 对应某次commit, 是一个点，是不可移动的。
branch 对应一系列commit，是很多点连成的一根线，有一个HEAD 指针，是可以依靠 HEAD 指针移动的。
所以，两者的区别决定了使用方式，改动代码用 branch ,不]]></description><category></category></item><item><title><![CDATA[android网络请求相关]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/110517855</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/110517855</guid><author>yangaiyu</author><pubDate>Thu, 03 Dec 2020 09:25:35 +0800</pubDate><description><![CDATA[请求的方法

HttpURLConnection
OkHttpClient
Retrofit


请求方法

获取资源  GET 返回body  HEAD 没有返回body
修改资源  POST（有请求体）   PUT（有请求体）
新增资源 POST
删除资源 DELETE （没有请求体）


请求

请求行：方法  path  http版本
请求头：metadata
请求体：body


响应

响应行： http版本       响应码200     响应消息 ok
响应头： metadata
响应体.]]></description><category></category></item><item><title><![CDATA[android 常见问题汇总]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/110392084</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/110392084</guid><author>yangaiyu</author><pubDate>Mon, 30 Nov 2020 16:52:11 +0800</pubDate><description><![CDATA[1. SharedPreferences的apply（）方法 和 commit()方法



apply方式提交，先同步写到缓存中，而后再异步写入磁盘；此处需要注意写入后，马上使用或者关闭进程，就会存在丢失的情况


commit方式提交，同步写到缓存和磁盘中，有返回值，不怕丢失


2.跳转页面后，未定位到首行



需要定位到首位的布局增加
android:focusable="true"
android:focusableInTouchMode="true"


3.
...]]></description><category></category></item><item><title><![CDATA[Gson的使用和转换]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/110118333</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/110118333</guid><author>yangaiyu</author><pubDate>Wed, 25 Nov 2020 10:23:44 +0800</pubDate><description><![CDATA[1.普通类的互转



LatLng latLng      = new LatLng(39.9, 116.6, 13.5);
//类转json
String latLng_json = new Gson().toJson(latLng);
//json转类
LatLng new_latLng = new Gson().fromJson(latlng_json,LatLng.class);


2. List集合互转



List&lt;LatLng&gt; latLngs = new ArrayLis.]]></description><category></category></item><item><title><![CDATA[android WebView读取pdf文件方法]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/109765250</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/109765250</guid><author>yangaiyu</author><pubDate>Wed, 18 Nov 2020 11:12:20 +0800</pubDate><description><![CDATA[1.搜罗方法


[可行] 最直接的方式下载到本地, 然后调用相关应用打开
	[可行，有局限] 使用 webview 加载， 需要在原url前面加上http://docs.google.com/gview?url=，即使用webview.loadurl("http://docs.google.com/gview?url=http://yourpdfurl.pdf");局限就是需要能上google的
	使用webview 加载html ，使用embed标签， 嵌入&lt;embed src="y...]]></description><category></category></item><item><title><![CDATA[HTTP请求状态码理解]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/109533245</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/109533245</guid><author>yangaiyu</author><pubDate>Fri, 06 Nov 2020 15:47:43 +0800</pubDate><description><![CDATA[1. 401：用户验证失败

2. 403：访问成功没有权限

3. 404：url错误，访问不存在

4. 500：服务端错误



理解浅显，其他后续补充
]]></description><category></category></item><item><title><![CDATA[正则表达式的写法探索]]></title><link>https://blog.youkuaiyun.com/yangaiyu/article/details/109528139</link><guid>https://blog.youkuaiyun.com/yangaiyu/article/details/109528139</guid><author>yangaiyu</author><pubDate>Fri, 06 Nov 2020 11:32:02 +0800</pubDate><description><![CDATA[1.需求


 匹配字符串 "other_ids":"[a,b,c]"
匹配字符串 "other_ids":""
匹配字符串 "other_ids":"[a]"
匹配字符串 "other_ids":"[a,b]"


2.结果：正确的正则表达式为


String regEx = "\"other_ids\":\""+"(\\[.*\\])?"+"\"";


3.尝试过程

1）先用字符串 "other_ids":""作为表达式正确匹配字符串 "other_ids":""；...]]></description><category></category></item></channel></rss>