Android 提高技能需要了解的一些东西

需要了解的一些东西,面试的时候也经常会被问到:


1)Activity相关,四大组件。App应用开发,涉及LaunchMode、onSaveInsatnce-State、生命周期等技术。

比如:推送消息过来之后,消息传递的流程,清楚程序的流程生命周期


2)Fragment相关技术。activity与fragment之间的消息传递,相关技术可以参考官方文档

比如 有时候会遇到的问题,fragment not attached to activity 的问题,或者由于点击过快,重复创建出现的exception(这个有时候和机器有关) 


3)序列化技术。有Parcelable和Serializable两种,经常面试的时候会被问到异同。


4)图片加载技术。 Fresco,glide ,UIL等等一些,可以去查找一下相关的优缺点,以后相关的缓存技术。

图片加载经常会出现OOM的问题,怎么去解决相关问题,也会在面试的时候经常被问到。


5)fastJSON或GSON的使用。网络传递数据解析成对象的,这个不用说这个的重要性,也有通过XML,或者二进制流传递数据的。


6)多线程相关。包括Handler、Looper、ExecutorService等。并发性等等。


7)Adapter和ListView,RecycleView,列表的写法。


8)网络模块:Okttp,retrofit等等,RestFul风格。

      面试的时候有时候会被问到 HttpULConnection和HttpClient的异同。

      可以demo写一个登录,了解这个。

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


9)Service receiver 的使用。 


10)Android与HTML5的交互。包括Android调用HTML5的方法,以及HTML5调用Android的方法。


11)代码混淆。ProGuard,不keep相关语法。

gradle中的常用的一些语法。


12)Android打包机制。涉及Android SDK中的若干命令。

        对Android打包过程做的每一件事都很了解。  进一步是Android多项目依赖的打包技术。Ant、Gradle或者Maven,掌握其中任何一种打包机制即可。

        多渠道打包的情况。


13)线上Crash分析并修复。要具备通过分析Crash信息修复线上Crash。


14)内存泄漏。包括内存优化、内存泄漏的场景、MAT工具的使用。


15)调试工具。包括DDMS、Eclipse或Android Studio的调试功能。


16)Monkey机制。Android开发人员如何对一款App进行Monkey测试。


17)单元测试。这里指的是JUnit。对复杂的算法写过单元测试以保证其没有问题。


18)GIT的高级功能。包括 fetch,rebase,merge,Revert、Stash、Cherry Pick和Sub Module等相关常用的命令

      如果项目中使用的是SVN,那么要掌握SVN的版本管理策略。


19)插件化编程。哪怕知道一点DexClassLoader的概念也好


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


21)常用的ADB命令


22)算法,这个大公司的面试必备的。


23)可以拓展技能,学习一下其他种类的语言:比如:Python,Ruby等等


       Kotlin也算是比较火的语言


你可能感兴趣的:(Android)