Android

Android通过.nomedia文件禁止多媒体库扫描指定文件夹下的多媒体文件 Android应用内存泄露分析、改善经验总结 修改Eclipse导入项目的默认工程名 自定义Android Studio工程模板 使用Nexus Repository搭建属于自己公司的私有maven服务器 Android Studio编译过程中mergeDebugResources时报“png-cruncher_*”异常的解决方案 Eclipse转Android Studio的过程中有必要弄明白的一些问题 Android开发经验总结 Android Studio使用过程中遇到的一些问题及解决方案 Android各个Support Library介绍 调用AsyncTask的excute方法不能立即执行程序的原因分析及改善方案 提升进入界面的速度 使用软引用解决Handler内存泄露和显示Popupwindow、Dialog时提示"Unable to add Window-token is null"的问题 SharedPreferences在多进程中的使用及注意事项 Android性能测试工具列表 Android View双缓冲绘制时清除Bitmap上的内容的方法 解决JPinyin在APK被加密后不能正常使用的问题 Android APP内存优化之图片优化 Android EditText的使用及值得注意的地方 Android应用内多进程的使用及注意事项 Android设置应用内文字的默认颜色和大小 关于APK瘦身值得分享的一些经验 Android通过ClipDrawable实现图片裁剪功能 Android通过广播更新文件和文件夹到媒体库 每个Android开发者都应该了解的资源列表 selector的使用方法及注意事项 通过批处理批量clone代码 Android清除数据、清除缓存、一键清理的区别 Android将数据库保存到SD卡的实现 Android多分辨率适配经验总结 通过观察者模式监听媒体库的变化实现APP本地数据自动更新 Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等) Android通过ADB查看wifi密码 Android一个APK多个入口(多个桌面图标)的实现 使用Python脚本批量卸载第三方应用和清除log缓存 Android CheckList Android模仿打字机效果的自定义View实现 在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案 Android手写优化-更为平滑的签名效果实现 Android手写优化-平滑的签名效果实现 不要在Android的Application对象中缓存数据! 大量Android面试题目来袭 一种不需要Google账号、不需要关联手机、不需要在手机上安装Google的服务直接能够下载Google Play上APK的方法 在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案 Android程序和数据分离的实现方案 按Home按键退出应用后重新启动该应用无法返回到最后打开页面的解决方案 Eclipse下Android项目不能生成R.java的解决方法汇总 android:descendantFocusability属性在ListView中的妙用 去掉SrollView、GrdiView、ListView、ViewPager等滑动到边缘的光晕效果 Android开发经验谈-Eclipse使用技巧 Android开发经验谈-很少有人会告诉你的Android开发基本常识 Android开发经验谈-Android工程目录介绍 在Android的string.xml中使用转义字符实现想要的显示效果 修改ViewPager调用setCurrentItem时,滑屏的速度 Android监听Home按键消息 Android手写开源项目和资料搜集 Android通过资源文件名获取资源ID Android中Bitmap、Drawable、bytes数组之间相互转换 想过但未实现的一些Idea 读写文件编码方式不一致导致文件乱码的解决方案 Android字符串格式化开源库phrase介绍 Android实现带箭头的自定义Progressbar Android模拟键盘输入功能的实现 与Android应用程序相关的各种文件存储路径介绍 Android开发者网址导航

标签

Android 65

Android通过.nomedia文件禁止多媒体库扫描指定文件夹下的多媒体文件 Android应用内存泄露分析、改善经验总结 修改Eclipse导入项目的默认工程名 自定义Android Studio工程模板 使用Nexus Repository搭建属于自己公司的私有maven服务器 Android Studio编译过程中mergeDebugResources时报“png-cruncher_*”异常的解决方案 Eclipse转Android Studio的过程中有必要弄明白的一些问题 Android开发经验总结 Android Studio使用过程中遇到的一些问题及解决方案 Android各个Support Library介绍 调用AsyncTask的excute方法不能立即执行程序的原因分析及改善方案 提升进入界面的速度 使用软引用解决Handler内存泄露和显示Popupwindow、Dialog时提示"Unable to add Window-token is null"的问题 SharedPreferences在多进程中的使用及注意事项 Android性能测试工具列表 Android View双缓冲绘制时清除Bitmap上的内容的方法 解决JPinyin在APK被加密后不能正常使用的问题 Android APP内存优化之图片优化 Android EditText的使用及值得注意的地方 Android应用内多进程的使用及注意事项 Android设置应用内文字的默认颜色和大小 关于APK瘦身值得分享的一些经验 Android通过ClipDrawable实现图片裁剪功能 Android通过广播更新文件和文件夹到媒体库 每个Android开发者都应该了解的资源列表 selector的使用方法及注意事项 通过批处理批量clone代码 Android清除数据、清除缓存、一键清理的区别 Android将数据库保存到SD卡的实现 Android多分辨率适配经验总结 通过观察者模式监听媒体库的变化实现APP本地数据自动更新 Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等) Android通过ADB查看wifi密码 Android一个APK多个入口(多个桌面图标)的实现 使用Python脚本批量卸载第三方应用和清除log缓存 Android CheckList Android模仿打字机效果的自定义View实现 在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案 Android手写优化-更为平滑的签名效果实现 Android手写优化-平滑的签名效果实现 不要在Android的Application对象中缓存数据! 大量Android面试题目来袭 一种不需要Google账号、不需要关联手机、不需要在手机上安装Google的服务直接能够下载Google Play上APK的方法 在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案 Android程序和数据分离的实现方案 按Home按键退出应用后重新启动该应用无法返回到最后打开页面的解决方案 Eclipse下Android项目不能生成R.java的解决方法汇总 android:descendantFocusability属性在ListView中的妙用 去掉SrollView、GrdiView、ListView、ViewPager等滑动到边缘的光晕效果 Android开发经验谈-Eclipse使用技巧 Android开发经验谈-很少有人会告诉你的Android开发基本常识 Android开发经验谈-Android工程目录介绍 在Android的string.xml中使用转义字符实现想要的显示效果 修改ViewPager调用setCurrentItem时,滑屏的速度 Android监听Home按键消息 Android手写开源项目和资料搜集 Android通过资源文件名获取资源ID Android中Bitmap、Drawable、bytes数组之间相互转换 想过但未实现的一些Idea 读写文件编码方式不一致导致文件乱码的解决方案 Android字符串格式化开源库phrase介绍 Android实现带箭头的自定义Progressbar Android模拟键盘输入功能的实现 与Android应用程序相关的各种文件存储路径介绍 Android开发者网址导航

2014年度总结-蓄势待发

2015年01月02日

年度总结

  之前从没有写过年度总结,今年是第一次。我想这大概是我2014年一个明显的进步吧。回首这一年,作为一个程序猿生活定然不会大起大落,但和大多数人一样,在这一年里肯定也会有不少感悟和收获,特此总结出来,以便对人生的这一阶段有个交代。

危机感是坚持下去的源动力

  今年的大致情形还是按照我年初的计划来走的,在年末总结的时候也算是对自己有了个交代,但最大的收获还是突破自我坚持了下来,实打实地深入了技术、扩展了视野:

  • 坚持写博客:前几个月在CSDN上写,下半年在github上搭建了属于自己的博客,博文总计80余篇,但整体质量一般;

blog

  • 坚持在知乎上回答问题,赞同数破万,被收藏数破5万,被邀请回答40余次,这也是我经常放松自己的一个地儿;

知乎

简书

  • 在提高自己专业知识深度、广度的同时为开源事业做点贡献,没什么技术含量,但为了github上的绿色小方框,拼了;

github

  • 沉下心来,踏实看几本书,

多看

  • 在目前为止我认为最好的视频教程网站吸取他人的开发经验,了解没有接触过的技术;

慕课网

  • 技术上有不懂的问题时,首先找google和stackoverflow

stack overflow

  • 用百词斩记单词、英语流利说练习口语,在quora上看别人的答案的同时顺带加强一下英语阅读能力。

quora

  回顾这一年,我之所以能够坚持下来的原因是:

  • 害怕跟不上快时代的节奏,需要持续不断地进步去抵抗可能存在的风浪;

  • 让自己活得更明白;

  • 不甘于现状,想体验更大的世界。

写出来是为了能够更清晰地理解

  我这么差的文笔,但在这一年里我写了大概80篇博客,在知乎上回答了差不多200个问题,真的非常感谢阅读我博客、给我点赞的朋友们能够包容我。我之所以能够坚持写点东西,是因为在工作的前两三年里,我发现表达能力是我的短板(貌似这个问题普遍存在于多数程序猿朋友身上),心里想的东西可多可多,但就是表达不出来,或者是说出来的和心里想的相差太远;有时候和比人讨论问题的时候甚至会词穷,不知该如何继续下去。后来我仔细想来是由于自己没有将逻辑梳理清晰,自己都没弄明白怎么可能让别人明白呢(在写程序这一点上印证了我的想法:我是一个快枪手,但是完成的程序总会有一些小问题,归根结底还是在设计的时候没有将逻辑理清楚)。

  所以,在这里提醒表达能力所有欠缺的朋友,一是要将自己所想写出来,先让自己清楚;二是要多实践,勇于表达。写出来还有一个好处,就是加深你对知识点的理解,当你需要将你所学到的知识表达出来的时候,你会去多做功课,理解其中的原理,这样学到的知识才是自己的知识,就算忘记了再次遇到时也会很快地理解。

注:阅读《金字塔原理》这本书有助于拟清你的逻辑,墙裂推荐。

一种可实现的成功学

  遇到这个观点最理想的时间是十年前,其次是现在,很幸运能够在今年就看到知乎精华问题你有什么相见恨晚的知识想推荐给年轻人?下采铜老师的这个回答,它现在成了我评估工作优先级,一件事情值不值得做的主要参考,回答引用如下,建议最好看原文:

  当我们评价一个事情值不值得去做、应该花多少精力去做的时候,应该抛弃单一的视角,而是分从两个不同的维度来看,一是该事件将给我带来的收益大小(认知、情感、物质、身体方面的收益皆可计入),即「收益值」;二是该收益随时间衰减的速度,我称为「收益半衰期」,半衰期长的事件,对我们的影响会持续地较久较长。

  这两个维度正交以后就形成了一个四象限图。我们生活、学习和工作中的所有事情都可以放进这个图里面。这里我举几个例子:

  • 高收益值、长半衰期事件:找到自己的真爱、学会一种有效的思维方法、完成一次印象深刻的旅行、与大牛进行一场意味深长的谈话;

  • 高收益值、短半衰期事件:买一件时髦的衣服、玩一下午手游、吃一顿大餐、看AV撸管;

  • 低收益值、长半衰期事件:练一小时书法、背诵一首诗、背牢十个单词、看一本经典小说、读懂哲学著作的一个章节、多重复一次技能练习、认真地回复一封友人的邮件;

  • 低收益值、短半衰期事件:挑起或参与一次网络掐架、漫无目的地网上闲逛刷微博、使用微信陌陌知乎等进行成功率很低的勾搭。

  如果我们反躬自省一下,可能会发现,我们平时做得最多的、最喜欢做的,是「高收益值、短半衰期事件」,其次是「低收益值、短半衰期事件」,而另两类长半衰期事件,我们或者做得很少、或者做得很不情愿、或者不具备做的条件。

  这个现象,就导致了一种结果,就是我们不自觉地陷入了一种「短半衰期的沙坑」之中。在沙坑里,我们总是一次次地把沙子抓起来,刚获得一点快感,沙子就已从指尖划下,然后重新来过。即便这个过程重复得再多次,我们还是得到相同的结果。每一天都是崭新的一天,但每一天都在重复昨天的故事。

  但是长半衰期的事件就不一样,它的效益可以累积和叠加。即便每一次事件的可见效益微乎其微,但是只要它的半衰期足够长,这个效益就可以传递下去,成为未来成功的一块小小的基石。比如背单词,背一个单词,尽管可能过几天就淡忘,但是当你重新背这个单词的时候,第一次行动留下的底子还是在那里,它可以降低你再次记诵的难度。但是假使你在玩神庙逃亡这个游戏,一个连续奋战几十分钟的战果可能在一次疏忽中就前功尽弃、灰飞烟灭,虽也许会留下一个高分纪录,但是这个数字,其实是没有意义的。

  再举一个例子,中午去食堂吃饭,不免要排队等上五到十分钟,这时大多数人会拿出手机刷微博打发时间,但是如果这个时候你拿出的不是手机,而是一本诗集,读上一首诗,又会如何呢?也许你会被旁人当成异类、呆子、文青,但是没关系,也许那首诗的美,已经种在你的心里,并在某个时刻开始生根发芽。

  我们知道乔布斯有一个著名的「人生三故事」的演讲,2005年在斯坦福大学。其中一个故事讲的是他在读大学期间练习书法,这个经历锻炼了他的审美品味,从而使得他在后来的苹果产品中特别注重产品的美感,所以这件事情为其传奇式的成功埋下了重要的伏笔。练书法这个事情的收益,对于我们普通人,放在当时和今天来看,都不那么高了,但是这个事情对人生的影响却可以沉淀下来,在某个时空机缘的当口爆发惊人的力量。

  所谓成功的人生,就是这样把无数个或大或小的收益累加起来的结果。

  看到这里,有些人可能会联想到时间管理中的「时间四象限法」,又称「艾森豪威尔法则」。该理论将事件从重要性和紧急程度两维度进行分类,分成重要紧急、重要不紧急、不重要紧急和不重要不紧急四类,并特别指出人们常常忙于去做不重要紧急的事,却忽略了重要不紧急的事情。我承认这个观点非常精彩,但是现实中,人们却很难履行这个法则并从中收益,因为我们现代人常常陷入了「两个无能」之中,一是「选择无能」、二是「执行无能」:

  • 「选择无能」就是我们很难判断两个事情哪个更重要,比如两本书看哪一本更有价值我不知道,比如两个证书去考哪一个更有前途我不知道。于是就成了布吕丹的驴子,在犹豫不决中寸步不行,直至饿死。

  • 「执行无能」就是我明知道这个事情很重要,就是不去做。其实对广大拖延症患者来说,一个事情看上去越重要,内心的恐惧感就越大,就越容易拖,最后一事无成。

  所以,与其死守「艾森豪威尔法则」而不入,不如放下,拥抱简单、易做的「采铜法则」:

  尽量少做或不做「短收益半衰期」的事情。

  除了字面意思外,这个法则暗含两层含义:

  收益值的高低无关紧要,只要不是「短半衰期」的事情,只要这个收益可以被累加,你就尽管去做,这个可以破除「选择无能」;

  你不用去做那些宏伟高大的事情。即便是去做那些不重要不紧急的事情比如你现在抽一分钟出来练几个字都可以,这就赚到了,就这样开始,没错!这可以破「执行无能」。

  的确,读完这篇文章,你可能还是有点迷惑,你仍旧不知道你该干什么,以及到底干什么才能成功,但是你已经可以告诉自己——从现在这一刻开始——你可以不干什么了。每个人拥有的时间都是相同的,一旦你消灭了那些不该干的事,余下的时间,不管你做了什么,都会为你增添力量,积累动能,你就会一步步地、头也不回地走向成功。

努力只是为了体验更大的世界

  坚持下来本就是一件困难的事情,何况我们所处的社会上有这么多诱惑,八小时之外的时间刷个微博、朋友圈、打几盘游戏、逛个街就过去了,有时候确实有必要让自己喝点鸡汤,比如这碗人这一生为什么要努力?我就经常喝,真的帮助到了我~

遗憾

  说好的学习PS、web后端开发都打水漂了,虽然有接触但都只是了解了个皮毛,也有一部分原因是目标不明确,没有想清楚学会是一个什么概念,这两件事儿算是我在2014年里最大的遗憾。

2015目标

  人总是要往高处走的,我不大喜欢列计划之类的,因为多数时候你会根据当时的情况去做决定,最终的效果和你当初的设想完全不是一个样子,但有个大概的计划毕竟是很好的,因为这会在你迷茫的时候让自己有点事做,有点追求。

  • 为自己开发独立APP做准备:学会PS、web后端开发,考核指标是能够独立完成APP的开发(策划、交互、UI、程序、测试);

  • 继续写博客,在知乎上回答问题,注重质量,考核指标是红点点里的数字和点赞数量;

  • 锻炼身体,远离颈椎病和各种大小感冒,考核指标是没有颈椎病,不感冒;

  • 没有学到死,就往死里学;坚持看书、浏览国外网站,考核指标是多看阅读里面的阅读量,stackoverflow上的声誉和威望,quora上的点赞数量。