android 基础

1 android的任务栈是什么,是通过什么样的标签来管理的?

  • standard(标准):每次创建一个activity的时候,都会讲这个acitivity压入栈中,这种创建的activity就会执行一次完整的生命周期
  • singleTop(单个栈顶):创建新的任务之前会去搜索栈顶的元素是不是需要穿件的任务,如果YES:那么就直接调用当前栈顶的元素,如果No:这走类似standard模式
  • singlgeTag(单独模式):创建新的任务之前会搜索当前栈中是否有该元素,如果YES,那么会删除这个元素上面所有的元素,直到改元素位于栈顶。NO:类似standard模式
  • singleInstance(单例模式):创建一个新的任务站,将该任务放入其中,便于复用性

2 acitivity的状态缓存

  • activity在后台的时候是不可控的,所以不知道是否会销毁掉,如果销毁了之后可以通过onSaveInstanceState()方法进行保存状态操作

3 对fragment的理解

  • fragment顾名思义碎片的意思,它有它单独的生命周期。能够把之前集中在activity的布局操作集中到fragment中,并且集中处理。能够方面不同之间的屏幕适配,关键还有自身的一套管理规则
  • fragment和activity之间的通信,目前最常用的有三种方式
    1.通过获取宿主activity来获取fragment事物管理(fragmentTrancetionManager)来获取fragment通信.
    2.通过接口实现通信,宿主activity在中间做中转.
    3.通过广播的也可以。

4 Handler机制

  • Handler机制中涉及到有 MessageQuee,Looper。MessageQuee是以消息队列的形式存在。 在App 中存在一个UI线程,它绑定一个Looper的,这个looper其实已经处于一个死循环的过程中,只不过它会不停获取当前的一个Handler的句柄,如果没有进行一个等待。 当我们在acitivty中new出一个Handler的时候,这时候三方就已经关联上了,然后mHandler.postMessage(Message msg)。 这个时候主线中的Looper就会获取这个消息队列的handler了。
  • 如果是在子线程中 new出一个Handler,那么这个子线程则需要跟Looper向关联起来,那么需要调用Looper.prerear();,然后这个handler的句柄不管是在哪一个线程发送消息,都会在刚刚绑定的线程中接收消息。

5 ContentProvider的理解

  • 他能够实现跨应用之间数据共享,比如联系人,图库,音视频库等。
  • URI 访问数据源的关键地址
    contentprovider_uri.png

    A部分:固定头 B部分:包名确定唯一性 C部分:数据那个数据源的集合 D部分:指定唯一的数据
  • 实现ContentProvider官方给的api 相关的增删改查方法,其内部实现是sqlite数据的实现。然后同过urimatcher来匹配通过SQLiteQueryBuilder来访问。

6 Service 的理解

service类似activity的生命周期,后台处理一些相关东西,比如 音乐的播放,或者长连接实现等等...
service 的创建
service的第一次的创建会实现onCreate,onStartCommand方法,如果再次启动service,则会直接跳过onCreate方法 有两种启动方式 一种是直接启动 startService(intent),另一种是 bindService(intent,serviceConnection,BIND_AUTO_CREATE);
service和acitivity的通信方式
在service中有一个onBind(Intent i)方法,而在activity中 ServiceConnection 匿名类,能够向下转型,将它与service进行绑定。
将service 定义为一个新的进程
android:process=":remote" 这个时候将不能够直接与activity进行绑定了,如果要进行通信,这需要进程间的通信了,或者使用广播也是可以的
直接启动service,在onstartCommand的几种返回值
START_STICKY: 粘性的,如果service被kill掉,保留service状态,但不保留intent对象,系统将尝试重新启动service. START_NOT_STICKY:非粘性的 ....

7 android 动画的集中形式

3种动画形式

  • 逐帧动画: 将完整的动画拆分成一张一张的图片,然后连贯起来播放
  • 补间动画:对view进行一系列的动画操作,包括淡入淡出、缩放、平移、旋转四中
  • 属性动画:可以改变任意属性来完成动画效果,系统为我们提供了 valueAnimator,ObjectAnimator等相关api可供扩展。这个时候要里面的属性进行修改,所以需要实现TypeEvaluator

8 对ListView 的理解,以及优化

listView 中 有RecycleBin机制

9 对内存的泄露OOM的理解,已经出现相应措施

  • 一般造成OOM的原因是 Bitmap使用不当,线程管理处理泄露。
    当运行一个app的时候,虚拟机会动态分配我们一个内存,在当前的内存分配中是不能够超出的。可拿到一张高分辨率的图片后,通常会获取这个位图bitmap,它是以ARGB8888 4444 565这几种形式构成 ARGB8888 32位 4个字节。 如果是100100的分辨率大么位图bitmap = 1001004,那么这个时候我们要对图片进行压缩处理,这个时候用到的是InSimpleSize 他是采样率,一般以2的倍数递增,值越大 压缩率越高 如 inSimpelSize = 4 那么压缩结果将是 width1/4hight1*4.大小将是原来的 1/16.
    final BitmapFactory.Options options = new BitmapFactory.Options();//图片操作参数
    options.inJustDecodeBounds = true; //ture表示不压缩,false表示压缩
    BitmapFactory.decodeResource(res, resId, options);//根据资源获取位图
    inSampleSize options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);// 调用方法计算合适的

10 对sokent的理解

11 JNI的使用规则

12 设计一个图片的缓存加载机制

  • 图片的压缩
    图片的大小跟分辨率是成正比的,

13 view的分发机制

对MVC 和 MVP 模式的理解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • Java部分1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理...
    zzj丶阅读 823评论 0 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 最近刚从旧公司离职,为面试在做准备,因为平时开发CV大法用得比较多,很多基础知识掌握得不是很牢靠以及很多工具框架只...
    黎清海阅读 2,104评论 1 19
  • Activity 创建:自定义类继承Activity 重写 onCreate 方法 注册:需要在 AndroidM...
    勤息嘻嘻嘻阅读 757评论 0 1
  • 本来想写点什么的,可是越想写的时候就越是没有思绪,到现在都还是比较无聊的一天天的,想想果真是浪费生命呵。昨天去监考...
    蓝枫阅读 173评论 0 1