<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_66264673的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_66264673</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_66264673]]></copyright><item><title><![CDATA[Android利用SOAP进行网络编程，这些面试题你会吗]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123215226</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123215226</guid><author>m0_66264673</author><pubDate>Tue, 01 Mar 2022 20:30:00 +0800</pubDate><description><![CDATA[new SoapSerializationEnvelope(SoapEnvelope.VER11);
Envelope.bodyOut =
request;
（5）创建HttpTransportsSE 对象。
HttpTransportSE ht=new HttpTransportSE
(“http:// fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl”);
（6）使用 call 方法调用 WebService 方法。
ht.call(null，e]]></description><category></category></item><item><title><![CDATA[Android企业级实战-界面篇-5，androidview的事件分发]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123215194</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123215194</guid><author>m0_66264673</author><pubDate>Tue, 01 Mar 2022 20:28:35 +0800</pubDate><description><![CDATA[一、先看看实现的效果
=========================================================================



二、实现前准备
======================================================================
1.dimens.xml文件内容（与第一个案例为同文件）

不占字了，请于第一篇自取
2.ids.xml文件内容（此案例可用）















 
3.colors]]></description><category></category></item><item><title><![CDATA[Android从源码分析RecyclerView四级缓存复用机制一（缓存ViewHolder）]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123215118</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123215118</guid><author>m0_66264673</author><pubDate>Tue, 01 Mar 2022 20:25:45 +0800</pubDate><description><![CDATA[public final class Recycler {
//一级缓存中用来存储屏幕中显示的ViewHolder
final ArrayList mAttachedScrap = new ArrayList&lt;&gt;();
ArrayList mChangedScrap = null;
//二级缓存中用来存储屏幕外的ViewHolder
final ArrayList mCachedViews = new ArrayList();
//暂可忽略 mAttachedScrap的不可变视图
privat]]></description><category></category></item><item><title><![CDATA[Android之OkHttp网络架构源码深入分析（揭开神秘的面纱），android项目开发实战入门pdf]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123215056</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123215056</guid><author>m0_66264673</author><pubDate>Tue, 01 Mar 2022 20:22:54 +0800</pubDate><description><![CDATA[this.connectionSpecs = builder.connectionSpecs;
this.interceptors = Util.immutableList(builder.interceptors);
this.networkInterceptors = Util.immutableList(builder.networkInterceptors);
this.eventListenerFactory = builder.eventListenerFactory;
this.proxySe]]></description><category></category></item><item><title><![CDATA[Android——service使用详解，android混合开发弊端]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123215019</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123215019</guid><author>m0_66264673</author><pubDate>Tue, 01 Mar 2022 20:21:29 +0800</pubDate><description><![CDATA[android:name=“string”
android:permission=“string”
android:process=“string” &gt;

| 属性 | 说明 |
| — | — |
| description | 对服务进行描述，属性值应为对字符串资源的引用，以便进行本地化 |
| directBootAware | 设置是否可以在用户解锁设备之前运行，默认值为“false” |
| enabled | 设置是否可以由系统来实例化服务。&lt; application &gt;元素有]]></description><category></category></item><item><title><![CDATA[Android—Dagger2-让你爱不释手--终结篇（附视频讲解，写给1-3年安卓程序员的几点建议]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123214983</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123214983</guid><author>m0_66264673</author><pubDate>Tue, 01 Mar 2022 20:20:04 +0800</pubDate><description><![CDATA[dagger2怎么使用？

因此我将结合这2点来进行本文的讲解。并且会有具体的sample。
dagger2到底有哪些好处？
咱们直奔主题：
增加开发效率、省去重复的简单体力劳动
首先new一个实例的过程是一个重复的简单体力劳动，dagger2完全可以把new一个实例的工作做了，因此我们把主要精力集中在关键业务上、同时也能增加开发效率上。
省去写单例的方法，并且也不需要担心自己写的单例方法是否线程安全，自己写的单例是懒汉模式还是饿汉模式。因为dagger2都可以把这些工作做了。
更好的管理类实例
每个ap.]]></description><category></category></item><item><title><![CDATA[android中WebView附件问题解决，kotlin库]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123002868</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123002868</guid><author>m0_66264673</author><pubDate>Fri, 18 Feb 2022 14:30:50 +0800</pubDate><description><![CDATA[没有头绪的时候，我用qq做了一个测试，把我们的html链接发到我手机qq上 ，然后在qq上点击html上的附件，发现是先下载，然后提示用手机上相关软件打开，比如 三方浏览器（UC浏览器,QQ浏览器）还有office等。
后来我们也就没做在线解析直接打开，也是做的像qq一样先下载然后依赖第三方软件打开。我觉得也比较合理（1.这种功能没有必要花那么多时间做的那么复杂 &nbsp;2.遵循主流软件处理方式）。
webview下载文件的代码：
package com.baobao.webview;
import c]]></description><category></category></item><item><title><![CDATA[Android上基于JSON的数据交互应用，android应用开发期末考试题]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123002673</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123002673</guid><author>m0_66264673</author><pubDate>Fri, 18 Feb 2022 14:25:09 +0800</pubDate><description><![CDATA[{“calendar”:
{“calendarlist”:
[
{“id”:“001”,“name”:“小猪”},
{“id”:“002”,“name”:“小猫”}
]
}
}
同样这个类的value类型可以包括：Boolean、JSONArray、JSONObject、Number、String或者默认值JSONObject.NULL object。
JSONStringer:

根据官方的解释，这个类可以帮助快速和便捷的创建JSON text。其最大的优点在于可以减少由于格式的错误导致程序异常，引用这个]]></description><category></category></item><item><title><![CDATA[Android~adb卸载系统预装应用（亲测有效，kotlin协程使用]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123002540</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123002540</guid><author>m0_66264673</author><pubDate>Fri, 18 Feb 2022 14:20:55 +0800</pubDate><description><![CDATA[frontOfTask=true task=TaskRecord{5546a0e #3162 A=com.uplus.onphone U=0 StackId=102 sz=1}


taskAffinity=com.uplus.onphone


realActivity=com.uplus.onphone/.activity.MainActivity


baseDir=/system/product/app/UplusTVonPhone/UplusTVonPhone.apk


dataDir=/da.]]></description><category></category></item><item><title><![CDATA[Android4，Spring都没弄明白凭什么拿高薪]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/123002502</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/123002502</guid><author>m0_66264673</author><pubDate>Fri, 18 Feb 2022 14:19:29 +0800</pubDate><description><![CDATA[}
}
//读取日志中某行日志信息
private void readJournalLine(String line) throws IOException {
String[] parts = line.split(" ");
if (parts.length &lt; 2) {
throw new IOException("unexpected journal line: " + line);
}
String key = parts[1];
if (parts[0].equals(REMOVE) &a]]></description><category></category></item><item><title><![CDATA[Android静态代码扫描效率优化与实践，看完这篇]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122991379</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122991379</guid><author>m0_66264673</author><pubDate>Thu, 17 Feb 2022 20:31:21 +0800</pubDate><description><![CDATA[scope.add(PROGUARD_FILE)
} else if (name.endsWith(DOT_PROPERTIES)) {
scope.add(PROPERTY_FILE)
} else if (name.endsWith(DOT_PNG)) {
scope.add(BINARY_RESOURCE_FILE)
} else if (name == RES_FOLDER || file.parent == RES_FOLDER) {
scope.add(ALL_RESOURCE_FILES)
s]]></description><category></category></item><item><title><![CDATA[Android进阶——Android跨进程通讯机制之Binder，androidstudio开发语言]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122991350</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122991350</guid><author>m0_66264673</author><pubDate>Thu, 17 Feb 2022 20:29:55 +0800</pubDate><description><![CDATA[}
/**

Cast an IBinder object into an com.handsome.boke.IMyAidlInterface interface,
generating a proxy if needed.
*/
public static com.handsome.boke.IMyAidlInterface asInterface(android.os.IBinder obj) {
if ((obj == null)) {
return null;
}
android.os.IInte]]></description><category></category></item><item><title><![CDATA[Android获取本机各种类型文件列表（音乐、视频，31道Android面试题]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122991215</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122991215</guid><author>m0_66264673</author><pubDate>Thu, 17 Feb 2022 20:22:50 +0800</pubDate><description><![CDATA[private String resolution = null;// 分辨率
private long size = 0;
private long date = 0;
private long duration = 0;
public Video(int id, String path, String name, String resolution, long size, long date, long duration) {
this.id = id;
this.path = path;
this.n]]></description><category></category></item><item><title><![CDATA[Android自定义照相机实现（拍照、保存到SD卡，音视频开发工程师需要具备的知识]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122991194</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122991194</guid><author>m0_66264673</author><pubDate>Thu, 17 Feb 2022 20:21:25 +0800</pubDate><description><![CDATA[@author wwj


@date 2013/4/29


*/
public class MainActivity extends Activity {
private View layout;
private Camera camera;
private Camera.Parameters parameters = null;
Bundle bundle = null; // 声明一个Bundle对象，用来存储数据
@Override
public void onCreate(Bundle sa..]]></description><category></category></item><item><title><![CDATA[Android自定义View：关于打钩小动画的思考重构，androidstudio播放音频]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122991172</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122991172</guid><author>m0_66264673</author><pubDate>Thu, 17 Feb 2022 20:20:00 +0800</pubDate><description><![CDATA[//画背景
mPaintCircle.setColor(checkBaseColor);
canvas.drawCircle(centerX, centerY, ringProgress == 360 ? radius : 0, mPaintCircle);
//当进度圆环绘制好了，就画收缩的圆
if (ringProgress == 360) {
mPaintCircle.setColor(checkTickColor);
canvas.drawCircle(centerX, centerY, circl]]></description><category></category></item><item><title><![CDATA[Android程序员这个职业，是选择去大公司好还是小公司？，你还在把Java当成Android官方开发语言吗]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122991140</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122991140</guid><author>m0_66264673</author><pubDate>Thu, 17 Feb 2022 20:18:35 +0800</pubDate><description><![CDATA[最终在北京找了一份软件开发的工作，公司很小，一共 6、7 个人，算上我一共 3 个程序员，另外两个程序员大概 3、4 年的经验。办公室 20 多平米，零食、咖啡这些统统都没有。
我的工资每个月 3000 块钱，此外再也没有其他的东西。其他正常计算机专业毕业生的工资 4500 元左右。
工资不高，但是对于向来节俭的我来说，这些已经够生活了，不嫌少！有地方收留我就够了，能入这个行就知足。
经过大四半年的 Java 培训，我只会点简单的 SQL，只会用 JDBC 写写增删改查。刚去没几天，就来了个项目，做一个内容]]></description><category></category></item><item><title><![CDATA[Android面试中多说这么一句话，薪水直接涨5k，Android开发社招面试解答之性能优化]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122965306</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122965306</guid><author>m0_66264673</author><pubDate>Wed, 16 Feb 2022 15:49:46 +0800</pubDate><description><![CDATA[实际上，工资结构是由：月薪、五险一金、加班费、带薪年假、期权、股票等一起构成的。所以在后面的面试环节一定要问清楚公司的工资结构是由哪几部分构成的。

在了解工资结构之后，要对所投递行业的薪水范围进行调查研究，可以通过之前在这个行业工作的人、朋友或者通过简历投递平台所发布的官方信息进行了解。然后根据自己的实际情况，确定一个期望的薪水范围。
二、懂得反问HR
在回答HR提出的薪资问题时，往往同学们都倾向于一个固定数字，比如说10K。那么恭喜你！你已经被HR成功套路！遇到这种情况，如果你去直接报价，如果报低了，那]]></description><category></category></item><item><title><![CDATA[Android面经分享，失业两个月，五一节前拿到Offer，真牛]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122965251</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122965251</guid><author>m0_66264673</author><pubDate>Wed, 16 Feb 2022 15:48:21 +0800</pubDate><description><![CDATA[Synchronized底层原理，java锁机制


java容器，hashmap和hashtable区别，hashmap原理，扩容流程，扰动算法的优势


ArrayList和LinkendList区别，List泛型擦除，为什么反射能够在ArrayList&lt; String &gt;中添加int类型


Http和Https区别，SSL/TLS过程


Android性能优化


jvm虚拟机，堆和栈的结构，栈帧，JMM


组件化注意点，组件间通信机制


线程安全的单例模式有哪几种


熟悉的..]]></description><category></category></item><item><title><![CDATA[Android自定义控件开发入门与实战（6）路径动画，android脚本开发工具]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122965168</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122965168</guid><author>m0_66264673</author><pubDate>Wed, 16 Feb 2022 15:45:30 +0800</pubDate><description><![CDATA[前面几章所讲的内容其实都只是比较普通、简单的动画，这章开始学习较难、较为有深度、也比较可以实现更加炫酷效果的动画，通过PathMeasure和SVG动画来实现。
PathMeasure实现路径动画

PathMeasure是Android官方API，是之前第一张关于路径只是的一个扩展，十分的有用。
PathMeasure可以计算出路径的总长、指定长度所对应的坐标等等路径信息。
有两种初始化方式：
第一种：
PathMeasure pathMeasure = new PathMeasure();
直接new一]]></description><category></category></item><item><title><![CDATA[android移动支付——微信支付，flutter瀑布流内存]]></title><link>https://blog.youkuaiyun.com/m0_66264673/article/details/122946122</link><guid>https://blog.youkuaiyun.com/m0_66264673/article/details/122946122</guid><author>m0_66264673</author><pubDate>Tue, 15 Feb 2022 15:40:07 +0800</pubDate><description><![CDATA[我们这里主要是来学习一下支付宝，微信支付，银联支付和paypal支付
现实生活中的支付就是：去商店浏览商品-&gt;把商品加入购物车-&gt;把购物车中的商品拿到收银台付款
上面的支付流程细化下来就是：
1.浏览商品
2.把要买的商品加入购物车
3.把商品拿到收银台，收银人员处理商品信息
4.告诉收银员支付方式
5.选择支付方式进行支付
6.处理支付结果（成功、失败、取消）
程序中的支付流程中:
1.浏览商品
2.把要买的商品加入购物车
3.把购物车中的商品信息和用户信息和支付方式等信息发送到自己服务器，服]]></description><category></category></item></channel></rss>