Android 学习总结

经过2个月的学习,对Android也有了个大概的了解,对已经学过的知识,可以按照四大组件和数据库技术来划分

1.首先是UI的学习,对Activity的了解,activity的生命周期方法,多种activity混合的生命周期方法,使用fragment对UI进行模块化优化;四种主要的布局模式:FrameLayout,RelativeLayout,LinearLayout,GridLayout。学会在xml中构建布局和各种UI组件:Viewpager,progressbar,textview,imageviwe等承载view的组件,

也学习了自定义view,学习了属性动画(属性与动画位置相关联),帧动画,补间动画(平移,缩放,旋转,淡入淡出)

2.Android中四中数据的存储方法:偏好设置(xml的键值对存储,存储设置);Sqlite(轻量型数据库),File(内存,外存),content Private(强力的数据获取能力)

3。service 优先级比后天程序要高,适合运行部分需要耗时执行的进程,不一定要在manifest中注册

4.广播broadcast 实现1对多的数据传输,需要在manifest文件中注册接受的广播类型

 其他组件:intent(意图):实现跨进程的数据传输,分隐式意图与显示意图两中,隐式:调用intent的setAction()方法,其中部分常见的Action有:ACTION_CALL,ACTION_EDIT等

5.对android中多线程和消息模型的理解,异步任务对象的应用:

使用Thread类对象来直接新建一个工作线程,在run()方法中写工作代码,也可以直接继承runnable借口,在重写起run方法;

消息模型:利用handler对象来进行线程(主线程和工作线程之间的互传)之间的消息传递,handler需要绑定looperqueue,如果looperqueue是在工作线程创建的则hanlder工作在工作线程,handler可以传递和处理message对象,借助message对象的arg0,org,what属性进行数据的传递,也可以直接调用用Activity对象的runOnUiThread方法更新 

异步任务对象AsyncTask:比较难的知识点,主要是线程池和handler对象的应用,asyncTask内置默认的线程池,只有一个核心线程,有20的looperqueue,最大线程为250,也可以自定义起核心线程数,队列长度,最大线程数。主要要重写doinbackground()方法和dopregress()方法

6.基本的数据结构:堆,栈,链表,数组,二叉树的优缺点分析

 堆:类似一个杯子,后进先出,扩展容量很难

栈:经过排序的树形结构,是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便

链表: 链表是在非连续的内存单元中保存数据,并且通过指针将各个内存单元链接在一起,最有一个节点的指针指向 NULL ;

链表不需要提前分配固定大小存储空间,当需要存储数据的时候分配一块内存并将这块内存插入链表中。存储数据和删减数据比数组要方便,但是查找很困难,因为元素的指针只想前一个元素和后一个元素(双向链表),或者只指向前一个元素(单向链表),内存散落在各处,没有固定的内存

数组:最基础的存储方式:优点查找方便,有固定的内存,缺点,删除和定点插入十分困难,需要后面的元素移位

二叉树:查找和删改都很方便,但是算法十分复杂


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值