Android开发之师弟可能不知道

开发了将近一年的项目,不停的重复着做一些重复的事。其中有很多是在更新迭代以及再开发的过程中,不断得以改进的地方。对于这些频繁又基础的操作,如果还没有接触的赶紧来试试吧!

简单知识,简单掌握

.class

Collections.emptyList();

当从一个函数当中获取一个数组且我们并不希望返回数组为 null 的情况下,可使用 Collections.emptyList() 来代替 new ArrayList() 或者 new LinkedList(),既可省去对返回数组对象的 null 判断,亦可省去不必要的内存开销。String[] strs = {"a","b","c"};

List strList = Arrays.asList(strs);// String[]转ArrayList
String[] strs2 = strLs.toArray(new String[strLs.size()]);// ArrayList反转String[]
strList.replaceAll(",","");// 输出"abc"
Collections.swap(strList, 0, 2);// 输出"cba"

拒绝繁琐的工作方式,让便捷成为一种辅助你偷懒的工具。

TextUtils.isEmpty(string);

可以通过 string.equals(null) 判断 string 是否为 null ,但更多时候也需要判断 string 的长度是否为0,即 string.equals("") ,但如果 string 为 null 会导致判断时出现 NullPointerException 异常。固然 TextUtils.isEmpty(string) 才是两全齐美的选择。

private static String sExact = "123";

if(sExact.equals(str));// 判断 str 的值是否等同于设定的值 "123"

或许有些人较为习惯 if(str.equals(sExact)); 这种写法,但是你可能不经意忘记 str 它自身存在 null 的情况,所以为了避免其造成 NullPointerException 异常,需要加多个判断 if(null != str && str.equals(sExact)); 。

然而实际上可直接用 if(sExact.equals(str)); 的来代替 if(null != str && str.equals(sExact)); 。前提是已经确认 sExact 为预设常量,并不存在 null 的情况。

ArrayList mList = ...;
if(null != mList && mList.isEmpty()){};

与 TextUtils.isEmpty() 同理,对于数组内容大小是否为0,引用 isEmpty() 便可直接代替 mList.size() == 0 这一判断。

private final static int ADULT_AGE = 18;
String type = year >= ADULT_AGE ? "young man" : "childer";

可以一行代码解决的判断,就不要依赖 if else 了,更何况这种写法效率更高。

private final static int ADULT_AGE = 18;
public void toXXOO(){
    if(year < ADULT_AGE ){
        Toast.makeText(context, "Minors are not allowed in!", Toast.LENGTH_SHORT).show();
        return;
    }
    ... // do anything
}

这里代码上并没有什么特别之处,只是我们通过 return 省去了 else 编辑以及之后代码的执行,让代码不至于往右方向缩进。当然并非所有环境下都能适用,若判定顺序以及内容比较复杂的情况,仍建议用回 else ,恢复提高代码的可读性。

for(int i = 0, k = list.length(); i < k; i ++);

是不是感到有些许蒙逼了呢? 骚年,其实际上只是帮你上去了一行代码而已,切莫惊慌。

for(Object object : objectList);

继JDK 5.0之后 for 循环的增强版,简化编程。建议使用(除了集合以及需要索引的场景以外)。

.xml

<TextView
    tools:text="预览效果"
    android:visibility="gone"
    tools:visibility="visible"/>
    .../>

根布局记得引入 xmlns:tools="http://schemas.android.com/tools"。简单点说吧, tools 可实现任意属性并实现“预览效果”,但实际代码运行这些属性的设置是不会出现的。

viewStub.inflate();viewStub.setVisibility(View.VISIBLE);

布局的延迟加载,占用资源小。执行 inflate() 时 viewStub 所指向的布局仍然会被实例化,也就是说其依然会占用相应的内存资源。建议使用但实际上并不常用,注意 inflate() 只能执行一次。

@dimen/font_main@color/blackcenter

单个布局以及跨布局出现重复视图样式的情况,建议在 style.xml 当中自定义通用的样式属性,一方面方便布局文件的浏览,减少了代码的编辑量,另一方面还有利于项目的后期维护。

other

  • 尽可能的避免创建全局变量,能局部就局部(打比方 listView.getAdapter(); 既然这里能获取就可以尽量避免 new 一个 Adapter 在全局上,当然如果局部调用较为频繁那就给放全局吧);
  • 布局设计尽可能不要过多的嵌套(除非真的没辙,一定要这么做);
  • 无论是代码实现还是 UI 设计,为了创建美好幸福将来,能脱离复用就脱离复用;-接手别人项目的能参考就参考,不能参考得改的就该批量改,不要局部改。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容