android 深入浅出 群内“每日一问” 问答总结
永远不变的就是变。
俗话说的好,环境改变人生。
常常面对的是一群积极奋进的人,那么你的心态和生活也会变的充满斗志。青春在于折腾,趁我们还年轻,拿出你的激情。踏着泪水载着梦,才干拥有自己的一片天空。
上上上周,有机会增加了一个比較小的andorid 开发群,群内活力充足,每日有不常见面试题。深入android 源代码的问题。由群主发起。各路大神讨论,为菜鸟(比方我)普及android知识。每日进步一点点,慢慢积累自己的財富~
本文收集题目来自:wing_Android 技术交流群(425983695),欢迎青春朝气的你增加。
1.merge标签的作用
假设出现静态页面载入也卡顿,一定是ui布局的层次关系没优化好。每增加一层布局,就会延迟界面显示。
2.view变化监听器ViewTreeObserver的使用
几个接口
interface ViewTreeObserver.OnGlobalFocusChangeListener
//当在一个视图树中的焦点状态发生改变时。所要调用的回调函数的接口类
interface ViewTreeObserver.OnGlobalLayoutListener
//当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时。所要调用的回调函数的接口类
interface ViewTreeObserver.OnPreDrawListener
//当一个视图树将要绘制时,所要调用的回调函数的接口类
interface ViewTreeObserver.OnScrollChangedListener
//当一个视图树中的一些组件发生滚动时。所要调用的回调函数的接口类
interface ViewTreeObserver.OnTouchModeChangeListener
//当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类
用法和点击事件相似
3.activity生命周期由谁调用,或者说由谁管理
activityManageService (查看源代码能够看到)
4.什么叫进程
进程是系统进行资源分配和调度的一个独立单位,线程是CPU调度和分派的基本单位
进程和线程的关系:
(1)一个线程仅仅能属于一个进程,而一个进程能够有多个线程,但至少有一个线程。
(2)资源分配给进程。同一进程的全部线程共享该进程的全部资源。
(3)线程在运行过程中,须要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
(5)线程是指进程内的一个运行单元,也是进程内的可调度实体。
线程与进程的差别:
(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。
(2)并发性:不仅进程之间能够并发运行,同一个进程的多个线程之间也能够并发运行。
(3)拥有资源:进程是拥有资源的一个独立单位。线程不拥有系统资源,但能够訪问隶属于进程的资源。
(4)系统开销:在创建或撤销进程的时候,由于系统都要为之分配和回收资源,导致系统的明显大于创建或撤销线程时的开销。但进程有独立的地址空间。进程崩溃后。在保护模式下不会对其它的进程产生影响,而线程仅仅是一个进程中的不同的运行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮。可是在进程切换时。耗费的资源较大,效率要差些。
5.抽象类和接口的差别
抽象类能够有非抽象方法
6.群友葫芦娃面试乐视题目
二是静态方式,即在AndroidManifest.xml中通过<receiver> 。
Service的生命周期方法onCreate, onStart, onDestroy
有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。
1. 通过startService
Service会经历 onCreate -> onStart
stopService的时候直接onDestroy
假设是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。下次调用者再起来能够stopService。
2. 通过bindService
Service仅仅会运行onCreate, 这个时候服务的调用者和服务绑定在一起
调用者退出了,Srevice就会调用onUnbind->onDestroyed所谓绑定在一起就共存亡了。
而且这样的方式还能够使得
调用方(比如)调用服务上的其它的方法。
7.UI线程和工作线程差别
8.frgment意外销毁怎么恢复---------群友葫芦娃小米面试题
activity
会由于内存不足意外中止,那么activity里面的fragment怎么恢复呢?
关于解答译文:http://blog.csdn.net/a940659387/article/details/50730076
9. 2.26群友葫芦娃群内提问
1.使用viewholder的时候,自定义的class
viewHolder须要static吗,为什么?
静态内部类就不同了。不用外部类的额实例就能拿到。
为了保证对象唯一节约资源。
handler无法被回收,则引起当前使用handler的Activity无法被回收,因此即使运行了Activity的生命周期onDestroy,handler的引用还是存在的,时间长了,就出现了内存泄露。
以上内容由博主纯手工记录和部分问题整理。
转载请注明出处:http://blog.csdn.net/qq_33078541?viewmode=contents
如你也是一个技术迷恋着,请增加我们的青春队伍~wing_Android 技术交流群(425983695)
最新文章
- bzoj1009矩阵快速面+kmp
- Unable to execute dex: java.nio.BufferOverflowException.解决办法
- Task示例,多线程
- usermod
- ios应用启动后的自动版本检测方式
- HDU 2489 Minimal Ratio Tree(dfs枚举+最小生成树)
- js performance
- Mac AppStore 登陆提示 未知错误
- 计蒜客NOIP模拟赛4 D1T2小X的密室
- 补习系列(12)-springboot 与邮件发送
- netcore log4相关
- 向后台提交数据:通过form表单提交数据需刷新网页 但通过Ajax提交数据不用刷新网页可通过原生态Ajax或jqueryAjax。Ajax代码部分
- vue: 代码小记
- 删除JS 对象属性(元素)
- loadrunner函数解密之web_reg_find
- 最简单的基于FFmpeg的AVfilter样例(水印叠加)
- ntldr is missing
- vue组件通信之任意级组件之间的通信
- Linux学习笔记-基本操作5
- Java基础-进制转换
热门文章
- SQL优化基础 使用索引(一个小例子)
- codevs 1082 线段树练习 3 --分块练习
- 网页制作常用的CSS知识
- Discuz3.1登录QQ互联显示redirect uri is illegal(100010)的解决
- 上POJ刷题
- zabbix4.2学习笔记--监控tomcat
- python __future__ 使用
- Spring Boot . 2 -- 用Spring Boot 创建一个Java Web 应用
- Spring.Boot.1 -- 概览
- 根据数据库表自动生成实体类、xml和dao---mybatis