<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Alex Tam 的专栏]]></title><description><![CDATA[努力对了,努力就对了.]]></description><link>https://blog.youkuaiyun.com/stzy00</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; stzy00]]></copyright><item><title><![CDATA[[Android] WebView中拍照或从相册上传图片]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/52831105</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/52831105</guid><author>stzy00</author><pubDate>Sun, 16 Oct 2016 16:32:07 +0800</pubDate><description><![CDATA[WebView 上传图片, 想必很多人都碰到过这样的场景. 而且 WebView 在4.4前后的区别非常大, 比如对URL跳转的格式, 对JS的注入声明等等, 4.4以后的WebView 已经是chromium内核, 有多强大就无需我赘述. 说这些, 其实也是为了说明也因为WebView的前后变化太大了, 所以在低版本和版本上, WebView上传文件的方式都略有不同, 而且在安卓4.4.4的一些设]]></description><category></category></item><item><title><![CDATA[[Gradle] Android Studio批量打包完全自定义APK包名]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/52081266</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/52081266</guid><author>stzy00</author><pubDate>Sun, 31 Jul 2016 22:44:32 +0800</pubDate><description><![CDATA[Gradle 本身是基于 Groovy 语法, 支持批量打包, 非常方便, 大家都知道的.  但在批量打包时, 肯定有个包名重命名的需求, 比如当前项目的 versionName 是 1.2.0, 用户在设备安装APK后所看到的版本号就是 v1.2.0. 当然, APK 应用还有个名称, 比如叫 AppName (当然, 这个名字随意啦, 一般都是英文单词组成),  然后有 3 个渠道, 比如是 ]]></description><category></category></item><item><title><![CDATA[[Android] 解决Volley中JsonObjectRequest的Post请求添加参数的问题]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/51603520</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/51603520</guid><author>stzy00</author><pubDate>Tue, 07 Jun 2016 16:21:08 +0800</pubDate><description><![CDATA[由于一开始官方介绍 Volley 适合轻量高并发的网络请求场景, 并不推荐用于上传下载, 因此以前只是粗略了解下就浅尝辄止, 并没有在项目中正式使用. 直到最近用到Volley.  于是碰到了一个问题.


使用 JsonObjectRequest  发POST请求时, Volley官方说在getParams(xxx) 方法中传递POST参数是无效的, 需要在构造方法中通过 JsonObje]]></description><category></category></item><item><title><![CDATA[[Android] Webview利用CookieSyncManager获取或设置Cookies的策略]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/50586979</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/50586979</guid><author>stzy00</author><pubDate>Tue, 26 Jan 2016 15:23:46 +0800</pubDate><description><![CDATA[应用场景
或许, 你也有碰到过这样的应用场景:
APP应用的某些功能, 需要调用内嵌的WebView去加载某个URL使用.  但用户在手机APP已经成功登录过了. 这时, 如果在内置浏览器去打开网页还需要用户再输入登录一次, 似乎显得不够人性化.  又或者, 用户在内置浏览器(WebView) 访问过一些页面, 想把这些有用的 Cookies 信息保存在本地.  因此, 我们会想, 要是能管理]]></description><category></category></item><item><title><![CDATA[[Android] 更好的解决 "返回键或取消时自动回调DatePickerDialog的方法onDateSet()" 的问题]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/50554890</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/50554890</guid><author>stzy00</author><pubDate>Thu, 21 Jan 2016 16:03:51 +0800</pubDate><description><![CDATA[自从忙完工作变动的事情后好久没写博了, 内心愧疚啊.... 说好的坚持学习呢... TAT


好吧, 回归正题.  用过 Android自带的DatePickerDialog的默认样式是这样的:




只有一个 "完成" 按钮...
如果将完成选择日期的触发事件放在方法onDateSet(), 那么无论是点击返回键或屏幕outSide的地方,  或者点击 "完成"按钮, 都会]]></description><category></category></item><item><title><![CDATA[RSA算法原理]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/49154837</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/49154837</guid><author>stzy00</author><pubDate>Thu, 15 Oct 2015 17:06:57 +0800</pubDate><description><![CDATA[原文链接



作者: 阮一峰






如果你问我，哪一种算法最重要？我可能会回答“公钥加密算法”。因为它是计算机通信安全的基石，保证了加密数据不会被破解。你可以想象一下，信用卡交易被破解的后果。

进入正题之前，我先简单介绍一下，什么是”公钥加密算法”。

一、一点历史

1976年以前，所有的加密方法都是同一种模式：

（1）甲方选择某一种加密规则，对]]></description><category></category></item><item><title><![CDATA[[Android] 快速实现一个可切换Tab标签页的组件]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/49130953</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/49130953</guid><author>stzy00</author><pubDate>Wed, 14 Oct 2015 23:15:20 +0800</pubDate><description><![CDATA[在移动应用上, 可水平切换Tab或者点击标签里上的某个标签直接跳到某个对应标签页, 这种交互很常见. 的确, 在开源上也有相当多不错的这类开源可用, 比如ViewPageIndicator, MaterialTab等等.  开源给予我们很多帮助, 提高我们的开发效率, 而研究别人优秀的代码也能提高自己的水平.


但另一方面, 我们去使用开源的时候, 往往会遇到一个问题, 而这个问题相信也是]]></description><category></category></item><item><title><![CDATA[[Android]仿京东手机端类别页]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/47959075</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/47959075</guid><author>stzy00</author><pubDate>Mon, 24 Aug 2015 21:51:42 +0800</pubDate><description><![CDATA[[Android]仿京东手机端类别页京东手机端的类别标签页, 是一个左侧滑动可选择类别, 右侧一个类别明细的列表联动页面. 当用户选择左侧选项, 可在右侧显示更多选项来选择. 实现方式也不少. 最常见的当然是左侧和右侧各一个Fragment, 左侧Fragment放置ListView, 右侧放显示类别明细的Fragment. 如果觉得页面包含的Fragment太多, 左侧直接给一个ListView就]]></description><category></category></item><item><title><![CDATA[[Android] 快速实现一个通用EmptyView]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/47760647</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/47760647</guid><author>stzy00</author><pubDate>Tue, 18 Aug 2015 22:14:18 +0800</pubDate><description><![CDATA[好的APP应当具备良好的交互, 最好能贴心的满足用户的需求. 而人性化的提醒就是其中之一. 某些APP中经常会看到这样的场景, 当加载内容失败, 或者获取内容失败时, 界面会变成一个可与用后交互的场景. 允许用户点击屏幕或者界面中某个按钮, 尝试重新获取内容或者检测网络连接等等.  Android的ListView中有类似setEmptyView(...) 的方法, 当列表中没有数据, 就会显示该]]></description><category></category></item><item><title><![CDATA[Lucene全文检索入门体验]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/47362155</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/47362155</guid><author>stzy00</author><pubDate>Sun, 09 Aug 2015 00:53:41 +0800</pubDate><description><![CDATA[Lucene是Apache开源的全文检索框架, 是单纯的搜索工具, 简单易用. 现在已经出到5.2.1的版本, 只需在项目中导入必需的几个jar包就能使用. 使用的过程可以概括为,
1)  建立索引
2) 搜索查找, 获取搜索结果



这里我们一起先来学习几个会用到的核心类:

Directory
该类在Lucene中用于描述索引存放的位置信息. 比如:
Directory]]></description><category></category></item><item><title><![CDATA[Android Studio升级到最新v1.3版后配置GitHub提示Gradle版本不支持的问题]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/47284717</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/47284717</guid><author>stzy00</author><pubDate>Tue, 04 Aug 2015 23:10:38 +0800</pubDate><description><![CDATA[基于ADT(基于Eclipse)开发Android的IDE已经被谷歌官方放弃, 首页推荐使用Android Studio. 于是使用AS的人也开始多起来了. 从0.8到现在, AS更新很频繁, 最近更新了1.3版本后, 计划将部分项目连接到Github上面管理. 在setting配置地址和登录信息, 测试连接时成功了.  然后检出Git项目到本地时却提示 the project is using]]></description><category></category></item><item><title><![CDATA[[Android]实现简单的任务管理器(非root)]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/47138885</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/47138885</guid><author>stzy00</author><pubDate>Thu, 30 Jul 2015 01:23:15 +0800</pubDate><description><![CDATA[由于不是系统级的应用, 也没有获得ROOT权限, 所以自己实现任务管理器其实意义并不是很大, 就像没有root的手机安装了LBE这类的手机助手, 虽然也带一键清理内存清理后台进程的功能, 但由于手机助手没有ROOT的最高权限, 因此面对开启了守护进程或者其他自启动的应用进程也是手无举措. 而随着谷歌的推动, 即将推送面世的新系统Android  M, 也对权限的管理越来越严格, 这也看出一个趋势,]]></description><category></category></item><item><title><![CDATA[JS在页面限制checkbox最大复选数]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/46907665</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/46907665</guid><author>stzy00</author><pubDate>Thu, 16 Jul 2015 10:22:34 +0800</pubDate><description><![CDATA[应该是挺简单的代码, 记录以下, 方便以后看看.


首先最直接的想法就是使用循环, 用局部变量记录已选的checkbox, 达到最大值就将余下的checkbox都禁止选择, 如下:




JS限制checkbox复选框多选

function onCheckBox(checkbox)
{
	var items = document.getElementsByName("item");]]></description><category></category></item><item><title><![CDATA[Android实现夜间模式小结]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/46892767</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/46892767</guid><author>stzy00</author><pubDate>Wed, 15 Jul 2015 14:22:52 +0800</pubDate><description><![CDATA[随着APP实现的功能越来越丰富, 看小说看视频上网等等, 现在不少人花在手机平板等移动终端上的时间越来越长了. 但手机和平板的屏幕并不像Kindle那类电纸书的水墨屏那么耐看, 由于自发光的屏幕特性, 我们长期盯着屏幕看容易眼睛酸痛疲倦, 因此各种护目模式, 夜间模式在移动APP上得到广泛应用, 这的确也是一个贴心的小功能. 所以这次我们探讨下几种实现方式, 一起学习总结下:


1, 利用]]></description><category></category></item><item><title><![CDATA[Android本地化存储Cookie(针对HttpClient)]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/46806683</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/46806683</guid><author>stzy00</author><pubDate>Wed, 08 Jul 2015 17:54:45 +0800</pubDate><description><![CDATA[因为最近有人问我怎么保存HttpClient的Cookie, 所以这里写下, 顺便记录总结吧. 当然, 有Android网络编程经历的童鞋一看就懂喇~ 


就不多说了, 直接上代码:
/**
     * 本地存储Cookie
     * @param response
     */
    private void saveCookies(HttpResponse response]]></description><category></category></item><item><title><![CDATA[Android性能优化 - 避免内存泄露]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/46596961</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/46596961</guid><author>stzy00</author><pubDate>Mon, 22 Jun 2015 22:41:11 +0800</pubDate><description><![CDATA[以前在网上也看过类似的译文,但也忘得差不多了. 直至最近在官网再次看到原文, 虽是09年的文章, 略显久远, 但再看一次还是觉得总结很好. 于是决定翻译下来, 顺便巩固自己的相关知识.


原文链接


安卓应用在大多数机型( 针对以前的比较旧的机型, 现在的手机配置越来越高, 可分配的运行内存也相应会比以前提高) 会得到16MB的应用内存. 即使你不打算真的使用这全部的内存, 你也应]]></description><category></category></item><item><title><![CDATA[Android开发调试必备 - 使用DDMS]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/46554529</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/46554529</guid><author>stzy00</author><pubDate>Fri, 19 Jun 2015 00:11:50 +0800</pubDate><description><![CDATA[原文地址



Android开发平台自带一个调试工具, 叫Dalvik Debug Monitor Server(简称DDMS). 这个工具提供了端口传输服务, 在当前连接的调试设备上截图, 设备的线程和堆(heap)信息, logcat信息, 进程状态信息 和 广播信息, 模拟目标机拨打电话和发送信息, 模拟位置数据等等.这篇文章将会适当的讨论DDMS的特点, 但不会详尽的介绍所有功能]]></description><category></category></item><item><title><![CDATA[Android自定义View之快速实现下拉刷新, 点击加载更多ListView]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/46473065</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/46473065</guid><author>stzy00</author><pubDate>Fri, 12 Jun 2015 16:26:20 +0800</pubDate><description><![CDATA[介绍
ListView是最常用UI组件之一. 由于手机的屏幕大小很有限, 如何在如此有限的空间简化交互操作, 将省下的空间用于显示更多的数据就显得相当有意义. 比如"刷新数据" 和 "加载下一页数据"等功能, 原来可能在视图的菜单栏上设计了固定的按钮, 但这些按钮无疑使界面看起来稍微"复杂"了一些. 于是大牛们将这种交互简化成列表下拉刷新, 上拉加载更多, 滑动到底部点击加载更多, 滑动到底部自]]></description><category></category></item><item><title><![CDATA[[Android]浅析Http框架 - Android-Async-http]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/46337527</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/46337527</guid><author>stzy00</author><pubDate>Tue, 02 Jun 2015 23:59:29 +0800</pubDate><description><![CDATA[现在主流的网络框架越来越多, Volley, okHttp, Android-Async-http. Android-Async-http是出现比较久的网络框架,用的人相当多. 后来Google结合HttpClient和HttpUrlConnection的优点又推出同样优秀的框架Volley.这些都是优秀的框架,值得我们去阅读源码学习. Android-Async-http我用过很长事件,但都没去]]></description><category></category></item><item><title><![CDATA[Android性能优化之解密ZAKER,网易云阅读等新闻应用的内容缓存加载方式]]></title><link>https://blog.youkuaiyun.com/stzy00/article/details/45905497</link><guid>https://blog.youkuaiyun.com/stzy00/article/details/45905497</guid><author>stzy00</author><pubDate>Fri, 22 May 2015 02:49:28 +0800</pubDate><description><![CDATA[我是比较关注时事的, 每天都会花一点事件去看看新闻什么的. 因此类似ZAKER, 网易云阅读等这类的资讯聚合类应用是我的钟爱, 并且这些应用也确实做得很好,值得学习! 前面一篇文章, 讲了缓存的一些构思. 之前也写过LRUCache类的一些缓存实践, 但那只是放在应用的缓存中,并不适合做长期的缓存.  这次我们来实践完整的例子, 模仿ZAKER那类应用是如何加载一条新闻的,并且如何缓存这条新闻的.]]></description><category></category></item></channel></rss>