https://blog.csdn.net/u012269126/article/details/52433237

有些andorid开发人员感觉很迷茫,接下来该去看系统源码还是继续做应用,但是感觉每天仅仅实在画UI和调用MobileAPI处理JSON,没有技术上升的空间。下面是包建强老师的《APP研发录》当中列举的20条需要精通的技能点看看你是否完全掌握:

1)Activity相关

App应用开发,以Activity使用最多,设计LaunchMode、onSaveInstanceState、生命周期等技术。

2)Fragment相关技术

用的人不少,明白是怎么回事的人不多,推荐一本书《Creating Dynamic UI Android Fragments》

3)序列化技术

有Parcelable与Serializable两种。前者是基于Service的,后者是基于Bundle的,二者实现原理不同,但是达到的效果近似。

4)ImageLoader的原理和使用

类似的,还可以学习Facebook新近开源的Fresco,它对图片的处理会更好一些。

5)fastJSON或GSON的使用

做App不会用实体自动匹配JSON数据,相当于白做。

6)多线程相关

包括Handler、Looper、ExecutorService等。

7)Adapter和ListView

这两个技术捆在一起,经常容易崩溃,尤其是分页的时候,要仔细研究深刻领会。

8)用户Cookie设计

需要把登陆机制彻底搞清楚,包括在HttpRequest头中夹带Cookie来进行用户身份验证的技术。

9)网络请求封装

使用AsyncTask的网络底层封装,使用Handler+Runnable的网络底层封装。

10)Android与HTML5的交互

包括Android调用HTML5的方法,以及HTML5调用Android的方法。

11)代码混淆

没有用过ProGuard,不知道keep相关语法,就仍是初级水平。

12)Android打包机制

涉及Android SDK中的若干命令。对Android打包过程做的每一件事都很清楚。进一步是Android多项目以来的打包技术。Ant、Gradle或者Maven,掌握其中任何一种打包机制即可。

13)线上Crash分析并修复

要具备通过分析Crash信息修复线上Crash的能力。

14)内存泄露

包括内存优化、Eclipse或Android Studio的调试功能。

15)调试工具

包括DDMS、Eclipse或Android Studio的调试功能。

16)Monkey机制

Android开发人员如何对一款App进行Monkey测试。附加技能~

17)单元测试

JUnit。对复杂的算法写过单元测试以保证其没有问题。

18)GIT的高级功能

包括Stage、Rebase、Revert、Stash、Cherry Pick和Sub Module等概念。如果项目中使用的是SVN,要掌握SVN的版本管理策略。

19)插件化编程

哪怕知道一点DexClassLoader的概念也好。这年头,没做过插件化编程,出门面试都不好意思说自己是Android开发的。

20)设计模式

对常见的设计模式如工厂、生成器、适配器、代理、策略模式耳熟能详。

以上20点设计的技术完全掌握之前,并不用花太多精力去看Android系统源码。

转 Android应用开发必备的20条技能的更多相关文章

  1. web设计经验<四>设计师必备的20条设计黄金法则

    编者按:以下内容摘自<美国视觉设计学院之完形设计>,新手可以多看这些法则,并运用到你的设计过程中,防止自己做出甲方式审美的作品. 一.必须有一个概念 设计从创意开始.这可能是非常不确定的— ...

  2. android gps开发必备资料(含测试demo下载)

    入门资料参考: How accurate is Android GPS? Part 1: Understanding Location Data How accurate is Android GPS ...

  3. 前端开发必备! 20 个强大的 Sublime Text 插件

    http://www.oschina.net/translate/20-powerful-sublimetext-plugins http://www.w3cplus.com/tools/emmet- ...

  4. Web前端开发必备

    前端学习相关书籍 关于书籍 HTML.CSS 类别书籍,都是大同小异,在当当网.卓越网搜索一下很多推荐.如果感觉学的差不多了,可以关注一下<CSS禅意花园>,这个很有影响力. Javasc ...

  5. Android 开发必备

    Android 开发必备 http://www.androiddevtools.cn/ 收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android ...

  6. [转载]Android开发必备的21个免费资源和工具

    转载自: http://blog.csdn.net/shimiso/article/details/6788375 Android移动开发平台现在不是一个“火”字能形容的,今年Android平台在市场 ...

  7. ym——android源代码大放送(实战开发必备)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 目录 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.c ...

  8. 【福利大放送】不止是Android,Github超高影响力开源大放送,学习开发必备教科书

    一.写在前面 最近项目重构,时间贼多,也没什么时间更新博客,个人的开源项目也是多时没有更新了:github地址,然而没有更新不代表我不在乎,后面一有空还是会继续提交的. 还是来冒个泡,给大家献上一些福 ...

  9. 【转】福利大放送--不止是Android,Github超高影响力开源大放送,学习开发必备教科书

    [福利大放送]不止是Android,Github超高影响力开源大放送,学习开发必备教科书   目录 一.写在前面 1.free-programming-books 2.oh-my-zsh 3.awes ...

随机推荐

  1. Python学习路线【对标大厂Python工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文要点:从Python爬虫工程师的招聘要求出发制定学习路线,同时还推荐免费优质的学习资源. 打卡学习不迷茫. 干货满满,建议收藏,需要用到时常看 ...

  2. namaspace之pid namespace

    认识Namespace namespace 是 Linux 内核用来隔离内核资源的方式.通过 namespace 可以让一些进程只能看到与自己相关的一部分资源,而另外一些进程也只能看到与它们自己相关的 ...

  3. 【java+selenium3】时间控件 (九)

    1.问题描述: 在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就有点难了. 如图 ...

  4. C# | VS2019连接MySQL的三种方法以及使用MySQL数据库教程

    本文将介绍3种添加MySQL引用的方法,以及连接MySQL和使用MySQL的教程 前篇:Visual Studio 2019连接MySQL数据库详细教程 \[QAQ \] 第一种方法 下载 Mysql ...

  5. React-Router基础(<HashRouter>)

    <Router>使用URL(即window.location.hash)的哈希部分来保持UI与URL同步的A. 重要说明:哈希历史记录不支持location.key或location.st ...

  6. Django笔记&教程 1-2 二 常用配置

    Django 自学笔记兼学习教程第1章第2节--二 常用配置 点击查看教程总目录 新手建议简单浏览本文,不理解的建议跳过,不要强行理解. Django的设置涉及多个模块,需要了解Django的一些相关 ...

  7. requests的post请求基本使用

    import requests # 请求url url = 'https://fanyi.baidu.com/sug' # 请求头 headers = { 'User-Agent': 'Mozilla ...

  8. Spring AOP及事务配置三种模式详解

    Spring AOP简述 Spring AOP的设计思想,就是通过动态代理,在运行期对需要使用的业务逻辑方法进行增强. 使用场景如:日志打印.权限.事务控制等. 默认情况下,Spring会根据被代理的 ...

  9. [hdu7082]Pty loves lcm

    先将问题差分,即仅考虑上限$R$(和$L-1$) 注意到$f(x,y)$增长是较快的,对其分类讨论: 1.若$y\ge x+2$,此时满足$f(x,y)\le 10^{18}$的$(x,y)$只有约$ ...

  10. [cf1285F]Classical

    先枚举$d=\gcd$,然后暴力枚举所有$d$的倍数,相当于求出若干个数中最大的互素对 假设选出的数依从大到小排序后为$a_{i}$,令$g_{i}=\min_{(a_{i},a_{j})=1}j$, ...