- 博客(19)
- 收藏
- 关注
原创 Android朝花夕拾之Debug
大家好,我是光源。本文首发于我的个人公众号:光源coder。(文末有二维码)距离上次写博客已有大半年,时间真是如突如其来的 bug —— 一刻不停歇。这段时间虽全身心扑在工作上,但仍然保持了记录的习惯,博客相关的 todo list 已经老长。那么第一篇我想写写 debug。
2017-10-12 22:54:14
381
原创 程序员谈招聘系列之求内推的正确姿势
前言大家好,我是光源。我曾经在学生时代各种找内推(基本都得到了内推),也在来到网易后各种被找内推,所以对内推的套路还是挺了解。“求内推”可是个技术活,你找准姿势了么?本文会给出一个高效、可实操的求内推流程,目的在于,希望以后求内推和被求内推的朋友都有一个好的用户体验。。欢迎拍砖。文章结尾有个福利。起因你说我一个程序员好好的技术文章不写怎么又写起内推了,不是不务正业么?兄弟别急,且听我细细道来。今天中
2017-01-06 20:09:24
2369
原创 写给Android开发者的混淆使用手册
写在前面大家好,我是光源。本文首发于我的个人公众账号,同时会在个人博客上同步。假如有任何建议还请移步博客点评,同时如果博客本身有修改或勘误,也会在博客更新。综述毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。首先,这里说的的混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依靠 ProGuard,混淆流程将主项目以及依赖库中未被使用的类、类
2016-10-25 22:24:20
5519
5
原创 Android中Serializable和Parcelable的对比
对于Android开发者来说,序列化总是一个不能避免的问题。前有“使用enum实现单例模式可以自动序列化”的观点,后有“在Intent传输过程中使用Parcelable进行序列化可以减少性能损耗”的思考。由此,我们很有必要找到应对各种场景的最佳实践。本文中我们谈谈Serializable 和 Parcelable。
2016-10-25 22:22:40
705
原创 try catch会影响性能么
今天 code review 时发现某个同事的代码中存在滥用try catch的现象。其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此不可避免得想在所有可能抛出异常的地方都try catch一下。当然,这种行为肯定是不可取的。
2016-10-25 22:21:38
2367
原创 Android抖动动画的实现与思考
在日常使用app或者玩游戏的过程中,我们经常可以看到某个view通过抖动来吸引用户注意,今天就来说说怎么实现这个动画。
2016-10-25 22:20:20
1274
原创 Android权限最佳实践
从 Android6.0 开始Android的权限模式有了一番更改,从安装时一股脑列给用户,到运行时动态申请权限。对于 Android开发者而言,这是一个重要的变更。
2016-10-25 22:17:16
681
翻译 Android 性能典范:拯救计划
前言今天逛稀土时偶然看到hanks分享的一篇英文文章,粗略浏览便已觉得不错,因此翻译成中文,与君分享。原文地址:Android Performance Patterns: Rescue tips正文现在的app到处都充斥着华丽的动画、复杂的转化还有自定义View,然而用户体验必须尽可能直观且类似。以下这些范例将会帮助你做出一个流畅的、快速响应的、甚至可能减少电量损耗的app,这些范例由一些可以提升整
2016-10-25 22:14:18
501
原创 代码实现Android流量统计
尽管现在WIFI的覆盖范围越来越广,但是设备(在这里设备指手机或平板)流量的使用仍然是用户很关注的一个点。因此,在APP中加入流量统计模块对于提升用户体验有很大帮助。
2015-12-10 19:49:37
8176
1
原创 Android中Service生命周期
Android这几天面试的时候,反复被问到一个关于Service的问题。在大二暑假实习的时候,做了一个APP。有一个应用场景是,需要开机启动一个Service,在Service中另开一个线程,去对比用户配置中的时间,作出及时提醒。
2015-12-10 19:45:35
659
原创 Android-4-X界面开发那点事
为什么要使用dp/dip?导航栏的宽度/高度应该设为多少dp合适?一般情况下应该使每个控件的高度显示为多少?本文就是要回答这些问题。
2015-12-10 19:43:32
585
原创 《代码大全》之表驱动法
表驱动法是一种编程模式——从表里查找信息而不是使用逻辑语句(if 和 case)。事实上,凡是能通过逻辑语句来选择的事务,都可以通过查表来选择。对简单的情况而言,使用逻辑语句更为容易和直白。但随着逻辑链的越来越复杂,查表法也就愈发显得更具吸引力。
2015-12-10 19:40:29
4132
原创 《代码大全》之变量名的力量
想要写优雅的代码,第一步就是取好变量名。作为代码最基本的组成元素,取一个好的变量名的重要性不言而喻。且看《代码大全》中是如何分说。 一个好的变量名是可读的、易记的和恰如其分的。可以通过应用多条原则来实现这些目标。最重要的命名注意事项为变量命名时最重要的考虑事项是,该名字要完全、准确地描述出该变量所代表的事物。
2015-12-10 19:38:06
629
翻译 [翻译]大牛告诉你一天时间能学些什么
为了学好一门编程语言,我们日复一日地看书、练习并参与实际的项目。就像马拉松,你坚持得越久,就收获得越多。在这样一个长期而乏味的时期内,你总是能有一些简短的时间——比如一天,去学点什么。学习到的这些技术将会给你带来巨大的满足感。一个目前在谷歌工作的大牛,Jacob Jensen,给出了以下清单,清单上列出了一些你能在一天之内学会的技术。
2015-12-10 19:24:15
543
原创 ListView的优化
ListView作为android上最常用的控件之一,其原理与效率十分值得我们去探究,特别是当与Button、 ImageView一起时,许多问题便纷至沓来。今天我就说说这老生常谈的话题,也是由此做一个总结。 一,ListView的原理 在Android中有一个Recycler的构件,滑出屏幕的的Item就会被缓存在里面。但并不是
2014-08-11 10:47:02
647
原创 在GitHub上参与开源项目
近日用到一个不错的开源库 AndroidCharts 使用方便,易于扩展和自定制。在使用的过程中发现了一个小bug,于是果断发起了pull request。第一次使用GitHub参与开源项目还是十分手生的,需要各种查资料,学习Git的用法。参考了许多资料,这里记录一下在GitHub上参与开源项目的过程。 1,寻找项目可以是你使用到的项目,你觉得想参与的,或者在这里找:
2014-08-11 10:43:10
1125
原创 简记git与SVN
svn与git是目前比较主流的版本控制系统,在这里简单记录一下它们之间的异同。 一,从架构来说,SVN是集中式,git是分布式。 集中式的优点是代码高度统一,缺点也很明显就是非常依赖于中央服务器。如果服务器宕机或者本地 无法联网,那么你将无法提交更新、还原、对比等,也就无法协同工作。同时SVN上的提交也并非是 每次都成功,如果有一个人
2014-08-11 10:40:57
521
原创 谨慎使用静态注册的BroadcastReceiver
在android中,BroadcastReceiver有两种注册方式。第一种是静态注册,在Androidmanifest.xml文件中以类似activity注册的方式进行注册。第二种是动态注册,在onResume中注册,在onPause中注销。一般而言,我们需要根据具体的使用场景来判断使用何种注册方式。静态注册的特点是接收设备全局的相应广播,尽管静态注册看起来比较方
2014-08-07 11:21:08
1571
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人