<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MarcoZhan的博客]]></title><description><![CDATA[千里之行，始于足下]]></description><link>https://blog.youkuaiyun.com/MarcoZhan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MarcoZhan]]></copyright><item><title><![CDATA[Android Webview详解]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70942983</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70942983</guid><author>MarcoZhan</author><pubDate>Sat, 29 Apr 2017 00:47:14 +0800</pubDate><description><![CDATA[前言
现在很多App里都内置了Web网页（Hyprid App），比如说很多电商平台，淘宝、京东、聚划算等等，如下图 那么这种该如何实现呢？其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。
目录1. 简介WebView是一个基于webkit引擎、展现web页面的控件。
  Android的Webview在低版本和高版本采用了不同的webkit版本内]]></description><category></category></item><item><title><![CDATA[Android Studio若干实用的插件]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70313328</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70313328</guid><author>MarcoZhan</author><pubDate>Fri, 21 Apr 2017 12:00:09 +0800</pubDate><description><![CDATA[1、LayoutCreator功能可以让你在Activity/Fragment中自动生成findViewById等布局相关初始化代码 
或者在Adapter中自动生成ViewHolder代码如果你有任何新的需求或者想法意见,也可以在issue中提出~ 
安装方式一. 下载项目中的jar包,通过本地disk方式导入 
方式二. 在Android Studio的插件中心搜索LayoutCreator下载]]></description><category></category></item><item><title><![CDATA[Android音视频点/直播模块开发]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70199084</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70199084</guid><author>MarcoZhan</author><pubDate>Sun, 16 Apr 2017 22:46:51 +0800</pubDate><description><![CDATA[前言
随着音视频领域的火热，在很多领域（教育，游戏，娱乐，体育，跑步，餐饮，音乐等）尝试做音视频直播/点播功能，那么作为开发一个小白，如何快速学习音视频基础知识，了解音视频编解码的传输协议，编解码方式，以及如何技术选型，如何解决遇到的坑，本文抛砖引玉，欢迎大咖交流。
一. 音视频的基础知识
1.1 基本概念
视频是什么
静止的画面叫图像（picture）。连续的图像变化每秒超过24帧（frame）画]]></description><category></category></item><item><title><![CDATA[关于Android单元测试]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70197101</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70197101</guid><author>MarcoZhan</author><pubDate>Sun, 16 Apr 2017 18:55:45 +0800</pubDate><description><![CDATA[【转载自美团点评技术团队的一篇文章，原文在这里：http://http://tech.meituan.com/Android_unit_test.htmld_unit_test.html。为了方便大家阅读，特在这里贴出原文内容，若涉嫌侵犯权益请告知，我会立即删除。】Android单元测试介绍处于高速迭代开发中的Android项目往往需要除黑盒测试外更加可靠的质量保障，这正是单元测试的用武之地。单元测]]></description><category></category></item><item><title><![CDATA[初识http、https、TCP/IP、Socket网络通信]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70173034</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70173034</guid><author>MarcoZhan</author><pubDate>Fri, 14 Apr 2017 15:47:14 +0800</pubDate><description><![CDATA[网络由下往上分为: 物理层–                     数据链路层–网络层–                       IP协议传输层–                       TCP协议会话层–表示层和应用层–           HTTP协议 
一、TCP/IP连接      手机能够使用联网功能是因为手机底层实现了TCP/IP协议，可以使手机终端通过无线网络建立TCP连接。]]></description><category></category></item><item><title><![CDATA[内存泄漏与内存溢出分析]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70148909</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70148909</guid><author>MarcoZhan</author><pubDate>Wed, 12 Apr 2017 23:25:35 +0800</pubDate><description><![CDATA[Java是垃圾回收语言的一种，开发者无需特意管理内存分配。但是JAVA中还是存在着许多内存泄露的可能性，如果不好好处理内存泄露，会导致APP内存单元无法释放被浪费掉，最终导致内存全部占据堆栈(heap)挤爆进而程序崩溃。
内存泄露
说到内存泄露，就不得不提到内存溢出，这两个比较容易混淆的概念，我们来分析一下。
内存泄露：程序在向系统申请分配内存空间后(new)，在使用完毕后未释放。结果导致一直占据该]]></description><category></category></item><item><title><![CDATA[关于MVC、MVP架构]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70148869</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70148869</guid><author>MarcoZhan</author><pubDate>Wed, 12 Apr 2017 23:20:12 +0800</pubDate><description><![CDATA[这里开始记录下来自己对MVC、MVP、MVVM这三种框架模式的理解，本文从以下几个方面来梳理。
架构的目的
框架模式、设计模式
MVC设计的介绍
MVC在Android中的应用
MVC该如何设计
MVP设计的介绍
MVP在Android中的应用
1. 架构的目的当我们在进行OOP编程时，一切对象来源于需求，对象结合业务逻辑通过多态、继承、等封装成各个业务模块。我们通过设计将程序模块化，使模块内部高内]]></description><category></category></item><item><title><![CDATA[Android图片加载框架 Glide 的基本用法]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70148647</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70148647</guid><author>MarcoZhan</author><pubDate>Wed, 12 Apr 2017 22:56:01 +0800</pubDate><description><![CDATA[转载自郭霖博客：http://blog.youkuaiyun.com/guolin_blog/article/details/53759439

现在Android上的图片加载框架非常成熟，从最早的老牌图片加载框架UniversalImageLoader，到后来Google推出的Volley，再到后来的新兴军Glide和Picasso，当然还有Facebook的Fresco。每一个都非常稳定，功能也都十分强大。但是它们的使用场景]]></description><category></category></item><item><title><![CDATA[完美结合LruCache和DiskLruCache实现Android照片墙]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70147764</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70147764</guid><author>MarcoZhan</author><pubDate>Wed, 12 Apr 2017 21:26:47 +0800</pubDate><description><![CDATA[转载自：
http://blog.youkuaiyun.com/guolin_blog/article/details/34093441Android照片墙完整版，完美结合LruCache和DiskLruCache ，看一看在实战当中应该怎样合理使用DiskLruCache。还不熟悉DiskLruCache用法的朋友可以先去参考郭霖大神的文章 Android DiskLruCache完全解析，硬盘缓存的最佳方案]]></description><category></category></item><item><title><![CDATA[RxBus对比EventBus]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/70147341</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/70147341</guid><author>MarcoZhan</author><pubDate>Wed, 12 Apr 2017 20:48:12 +0800</pubDate><description><![CDATA[本文通过原理分析和实测结果对EventBus和RxBus做详尽的对比，给大家在实际项目中选型做参考。开始之前先提一下Otto：https://github.com/square/otto当初Android上的事件总线系统是两强相争，老大是EventBus，老二就是Otto。在EventBus官方的性能测试代码中，只和Otto做了对比测试。这么重要的人物为了么这次没出场呢？是因为它已经停止开发了。Ot]]></description><category></category></item><item><title><![CDATA[ConstraintLayout新布局]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/69681200</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/69681200</guid><author>MarcoZhan</author><pubDate>Sat, 08 Apr 2017 17:25:29 +0800</pubDate><description><![CDATA[在去年，2016年的Google i/o 大会上，Google推出了Android studio2.2，其中包含了为Android界面布局推出的最新的约束型布局ConstraintLayout，接触过iOS界面开发的朋友，可以认为这是Google为Android推出的AutoLayout布局。因为这方面的资料还不是很多，大部分的资料都是Google官方介绍翻译，没有具体用在项目里的实例，在此正好公司]]></description><category></category></item><item><title><![CDATA[Android Studio 2.3 正式版发布！看看有什么新功能]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/69681120</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/69681120</guid><author>MarcoZhan</author><pubDate>Sat, 08 Apr 2017 17:16:48 +0800</pubDate><description><![CDATA[Android Studio 2.3 正式版发布了！来看看我们的劳动工具 2.3 有什么新功能吧！编译Instant Run工具栏上增加了一个“闪电”的标志，原来的「Run」按钮（Shift+F10）会保持全量编译。新增的「闪电」按钮（Gradle 需要升级到 2.3.0）才是 Instant Run，会在程序保持运行的情况下替换代码。Instant Run 的底层代码有很大的改进，消除了的启动延时]]></description><category></category></item><item><title><![CDATA[Android TextView 设置超链接、关键字高亮等效果]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/69681092</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/69681092</guid><author>MarcoZhan</author><pubDate>Sat, 08 Apr 2017 17:13:57 +0800</pubDate><description><![CDATA[之前做TextView关键字高亮效果，使用的是Html.fromHtml(String source)方法，然后通过TextView的setText(CharSequence text)方法来显示
后来测试此方法在部分手机上显示有问题，如Nexus4，华为P6等等。于是乎只能继续寻找别的解决办法了，在这里Mark一下。
这里用到了SpannableString类使用 SpannableString.]]></description><category></category></item><item><title><![CDATA[NDK 和 jni 的关系]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/69400178</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/69400178</guid><author>MarcoZhan</author><pubDate>Thu, 06 Apr 2017 18:17:54 +0800</pubDate><description><![CDATA[目录(?)[+]首先我们要知道Java是如何调用cc的什么是JNI简介为什么要使用JNI怎么使用JNI开发工具JNI中的JavaVM与JNIEnv对象JavaDalvik VMCC的运行机制与流程 在Android的NDK中JavaCCDalvik VM关系如下NDK和jni的区别
        首先我们要知道Java是如何调用c/c++的什么是JNIJava native interface（j]]></description><category></category></item><item><title><![CDATA[Android Studio 2.2 NDK 开发 之 cMake 方式]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/69397878</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/69397878</guid><author>MarcoZhan</author><pubDate>Thu, 06 Apr 2017 17:43:29 +0800</pubDate><description><![CDATA[前言：Android Studio 推出 2.2 之后 ，解锁一个 NDK 开发新姿势 ： cMake ；跟传统的（Android Studio 2.2 之前）有很多大的不同.
首先来比较一下两者的目录结构： 传统方式：cMake 方式：
结构上还是有略微的差别的 ，接下来进入主题 。1、环境搭建这就不多说了，照着传统方式做，http://www.jianshu.com/p/e7c2c63fa70e]]></description><category></category></item><item><title><![CDATA[Android Studio 中 NDK 开发与调试（生成 .so 文件）]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/69397806</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/69397806</guid><author>MarcoZhan</author><pubDate>Thu, 06 Apr 2017 17:39:20 +0800</pubDate><description><![CDATA[温馨提示：如果你的 Android Studio 版本在 2.2 以上 ， 建议你用 cMake 的新姿势进行 NDK 开发 : http://www.jianshu.com/p/e03028f826d7我相信你会爱上 cMake 的；
1. 环境搭建
俗话说 “工欲善其事，必先利其器” ；所以咱还是得先下载 ndk；下载地址 ：https://developer.android.com/ndk/d]]></description><category></category></item><item><title><![CDATA[Java之线程池使用]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/68951079</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/68951079</guid><author>MarcoZhan</author><pubDate>Sun, 02 Apr 2017 10:46:26 +0800</pubDate><description><![CDATA[出处：http://www.cnblogs.com/dolphin0520/　　　　
　　
     在前面的文章中，我们使用线程的时候就去创建一个线程，这样实现起来非常简便，但是就会有一个问题：
　　如果并发的线程数量很多，并且每个线程都是执行一个时间很短的任务就结束了，这样频繁创建线程就会大大降低系统的效率，因为频繁创建线程和销毁线程需要时间。
　　那么有没有一种办法使得线程可以复用，就是执行完]]></description><category></category></item><item><title><![CDATA[2017 年初、阿里、腾讯、百度、华为、京东、搜狗和滴滴面试题汇集]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/65938365</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/65938365</guid><author>MarcoZhan</author><pubDate>Sat, 25 Mar 2017 17:32:50 +0800</pubDate><description><![CDATA[面临2016年寒冬季节，大量公司模仿O2O模式导致死掉企业的很多，在加之培训机构大量的培训人，导致供大于求，当然这不意味着饱和，只是市场更趋于合理一些（只要技术好不用怕的）。最近结合一些面试的同学和大牛们（张旭童）反馈，前几天听童哥去阿里面试顺便整理了下一些面试题目。希望对大家有所帮助，后期会不断更新添加新的面试题。可以帮大家查漏不缺。以下是（2016、2017
 、阿里、腾讯、百度、华为、京东、搜]]></description><category></category></item><item><title><![CDATA[创建安卓app的30个经验教训]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/65938117</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/65938117</guid><author>MarcoZhan</author><pubDate>Sat, 25 Mar 2017 17:13:13 +0800</pubDate><description><![CDATA[编辑推荐：稀土掘金，这是一个针对技术开发者的一个应用，你可以在掘金上获取最新最优质的技术干货，不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎，想成为全栈工程师的朋友不要错过！
                    
                     
Amazing design from https://ramotion.com这个世界上有两种人－从经验教训中学习的人以及]]></description><category></category></item><item><title><![CDATA[关于Android架构的一些思考]]></title><link>https://blog.youkuaiyun.com/MarcoZhan/article/details/65446461</link><guid>https://blog.youkuaiyun.com/MarcoZhan/article/details/65446461</guid><author>MarcoZhan</author><pubDate>Thu, 23 Mar 2017 17:36:30 +0800</pubDate><description><![CDATA[刚开始，因为业务比较赶，我们也没有进行比较好的顶层设计，对代码的要求也是最低要求——完成功能开发就行了。这种短期设计也就造成了我们代码的扩展性几乎为零，稍微添加一点新功能，都要大动干戈。在后台系统架构从TCP转为HTTP时，这些缺点则被放大到极致……所以，我们只有重构了。近一个月来，我工作的重心便是好好规划和设计我们项目的代码结构，同时分享给我们的Android组并予以实行。因为研究了很多的架构，其]]></description><category></category></item></channel></rss>