knowledge of the planet——The android learning plan
第一周
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| 理解Java中的synchronized关键字。 指标:理解synchronized的含义、明确synchronized关键字修饰普通方法、静态方法和代码块时锁对象的差异。 有如下一个类A class A { public synchronized void a() { } public synchronized void b() { } } 然后创建两个对象 A a1 = new A(); A a2 = new A(); 然后在两个线程中并发访问如下代码: Thread1 Thread2 a1.a(); a2.a(); 请问二者能否构成线程同步? 如果A的定义是下面这种呢? class A { public static synchronized void a() { } public static synchronized void b() { } }
|
第二周
1 2 3 4 5 6 7 8
| 话题:清晰地理解Service。 1、Service的start和bind状态有什么区别? 2、同一个Service,先startService,然后再bindService,如何把它停止掉? 3、你有注意到Service的onStartCommand方法的返回值吗?不同返回值有什么区别? 4、Service的生命周期方法onCreate、onStart、onBind等运行在哪个线程? 如何学习? 请从网上查找相干主题的内容,或者参考Android开发艺术探索,还可以阅读Android官方文档中有关Service的章节。
|
第三周
1 2 3
| 话题:理解Activity的启动模式。 1、Activity的启动模式有哪几种,分别用于什么场景? 2、清晰地描述下onNewIntent和onConfigurationChanged这两个生命周期方法的场景?
|
第四周
1 2 3
| 话题:关于startActivityForResult 1、startActivityForResult的使用场景是什么?onActivityResult回调里面的resultCode和requestCode含义是什么? 2、Activity A启动B的时候,在B中何时该执行setResult ?setResult可以位于Activity的finish方法之后吗?
|
第五周
1 2 3 4
| 话题:关于View的知识 1、View的getWidth()和getMeasuredWidth()有什么区别吗? 2、如何在onCreate中拿到View的宽度和高度?
|
第六周
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 话题:关于Gradle的知识 1、如何理解Gradle?Grade在Android的构建过程中有什么作用? 2、实践如下问题。 问题:我们都知道,Android中时常需要发布渠道包,需要将渠道信息附加到apk中,然后在程序启动的时候读取渠道信息。仍然拿VirtualAPK来举例,链接:https://github.com/didi/VirtualAPK 动态指定一个渠道号(比如1001),那么构建的apk中,请在它的AndroidManifest.xml文件里面的application节点下面添加如下meta-data,请写一段Gradle脚本来自动完成: <application android:allowBackup="false" android:supportsRtl="true"> <meta-data android:name=“channel" android:value=“1001" /> </application> 要求:当通过如下命令来构建渠道包的时候,将渠道号自动添加到apk的manifest中。 ./gradlew clean assembleRelease -P channel=1001 PS:禁止使用manifestPlaceholders
|
第七周
1 2 3 4 5 6
| 话题:关于序列化的知识 1、Parcelable和Serializable有什么用,它们有什么差别? 2、自定义一个类让其实现Parcelable,大致流程是什么? (豪哥掘金文章)
|
第八周
1 2 3
| 话题:Java基础知识学习 1、Java中有哪几种引用?它们的含义和区别是什么? 2、请用Java实现一个线程安全且高效的单例模式。
|
第九周
第十周
1 2 3 4
| 话题:Android中的ClassLoader 1、Android中有哪几种ClassLoader?它们的作用和区别是什么? 2、简述ClassLoader的双亲委托模型 3、简述双亲委托模型在热修复领域的应用
|
第十一周
1 2 3 4
| 话题:Binder 1、什么是Binder?简单描述下它的工作过程和使用场景 PS:这个问题几乎Android面试必问
|
第十二周
1 2 3 4
| 话题:Okhttp和Retrofit 1、介绍这两个框架的作用和联系 PS:这个问题几乎Android面试必问
|
第十三周
1 2 3
| 话题:从源码的角度描述下Activity的启动过程 PS:这个问题Android高级别面试必问
|
上一篇:CSS字体和文本样式
下一篇:总结2017、展望2018