Android开发中经常使用的有这么多点技能,你掌握了多少,走到了哪一步,如果现在感觉就是做做UI,处理处理网络请求数据,感觉不到上升空间,那么这些东西你掌握了么。
1)Activity相关
App应用开发,Activity可以说是Android的基础部分了,但是基础部分必须掌握的几个点,你掌握了么,首先我们要掌握的就是activity生命周期,这个是了解和使用activity的基础,其次是activity之间的传值,然后是onSaveInstanceState、设计LaunchMode等技术。
2)Fragment相关技术
用的人不少,明白是怎么回事的人不多,那么我们生命周期是必须掌握的,其次FragmentManager,Fragment Arguments,Fragment的startActivityForResult,等等技术;
3)序列化技术
有Parcelable与Serializable两种。前者是基于Service的,后者是基于Bundle的,二者实现原理不同,但是达到的效果近似。
4)ImageLoader的原理和使用
首先我们要搞明白imageLoader的原理及使用方法,oom可以说是伴随着图片处理的一个大问题,你遇到的多么,处理的多么?通常我们开发过程中很多都使用到Universal-image-Loader,那么你了解么
5)JSON或GSON的使用
做APP可以说从大的说就UI界面和数据处理显示两方面,那么网络请求数据解析这块必须掌握。
6)多线程相关
包括线程间通信Handler、Looper;线程池的概念ExecutorService,线程的同步synchronized等。
7)View和Adapter
当然listView和Adapter作为UI的代表,那么各种优化,缓存,分页中遇到的问题,冲突,你都能掌握了么
8)数据存储设计
需要把登陆机制彻底搞清楚,包括在HttpRequest头中夹带Cookie,Session来进行用户身份验证的技术。包括数据存储的几种机制,sharedpreference,sqlite,file等
9)网络请求封装,框架
使用AsyncTask的网络底层封装,使用Handler+Runnable的网络底层封装。实现原理了解后,升华的几种网络请求框架,如Android-async-http ,loopj,xUtils等你了解多少
10)Android与HTML5的交互
包括WebView如何加载HTML页面,如何做预处理等,甚至HTML处理Android提交的数据如何操作,以及数据库端的操作,你是否了解呢
11)代码混淆
没有用过ProGuard,不知道keep相关语法,就仍是初级水平。
12)Android打包机制
涉及Android SDK中的若干命令。对Android打包过程做的每一件事都很清楚。进一步是Android多项目以来的打包技术。Ant、Gradle或者Maven,掌握其中任何一种打包机制即可。
13)线上Crash分析并修复
要具备通过分析Crash信息修复线上Crash的能力。
14)内存泄露
包括内存优化、Eclipse或Android Studio的调试功能。
15)调试工具
包括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)设计模式
对常见的设计模式如工厂、生成器、适配器、代理、策略模式耳熟能详,了解每个模式在什么情况下第考虑使用