android重要知识点总结
Android知识点整理
一、四大组件
Activity (生命周期可编辑onResume和可见onStart,不可编辑onPause和不可见onStop)、Service (AIDL,开始方式)、BroadcastReceived(有序,无序) 、ContentProvider(Uri)
二、五大布局
LinearLayout 、RelativeLayout(降低布局嵌套) 、FreamLayout 、TableLayout 、AbsoluteLayout
三、通信机制
Intent(隐式,显示,两个之间的数据传递)、Service、BroadcastReceived、Handler(多线程)、sharedPreferred(如果跳转的次数太多,可以考虑本地文件存储了)、file(类似于sharedPreferred)
四、动画
帧动画、Tween动画(移动、缩放、旋转、透明)
五、ListView
各种布局加载(动态加载布局)、优化(convertView、ViewHolder、异步加载、分页加载)、notifyDataSetChanged更新数据
六、Fragment
与Activity(使用FragmentManager)之间的通信、Fragment使用(getActivity())
七、线程、进程
1.进程:一个应用程序在内存中的镜像
2.线程:一个进程中可以包含多个线程
多线程、多线程下载
Thread Runnable Handler AsyncTask
应用场景:耗时操作(一般指5秒)和定时操作(schedule Task)
具体场景:IO操作(网络操作、文件操作、数据库操作)、复杂的运算算法、消息接收方法的耗时操作、定时任务
3. 线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。
八、http和socket
Http(短连接)特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接
Socket(长连接) 特点 服务器监听,客户端请求,连接确认
区别、优缺点、返回码的含义
返回码200成功206部分成功404文件丢失503服务器未响应
九、数据存储
文件存储、SharedPreference(密码、判断)、SQLite(继承SQLiteOpenHelper,生成SQLiteDatabase
对象来新建处理SQL语句,数据库升级)、网络存储(上传、下载)
十、自定义组件
两种方式:include(标签一般用merge);创建自定义控件(一般有响应按钮时调用)
两个主要方法measure和layout,要是自定义View,显示时用setContentView
十一、适配器
Drawable(.9图片)、 Layout 、Values(dimen) 、Java代码控制 、weight
十二、开源框架、开源组件
框架:Volley 、xUtil 、okhttp、eventBus、Gson、festJson、imageloader、Picasso(获取远程图片)、zxing(二维码)
组件:pull2RefreshListView、SlidingMenu
十三、内存优化和程序优化
1.Android优化的布局(使用merge标签优化层级、不需要立即加载的布局,设置为GONE,系统会跳过,不加载、使用ViewStub 实现按需加载、ListView的优化)、
2. 对内存的优化
1.Reckon(计算)首先需要知道你的app所消耗内存的情况,知己知彼才能百战不殆
2.Reduce(减少)消耗更少的资源(BitmapFactory.Options设置inSampleSize, 这样做可以减少对系统资源的要求;如果对图片没要求可以设置RGB_565(每像素占2字节,默认的是ARGB_8888占4个字节)opt.inPreferredConfig = Bitmap.Config.RGB_565;用Bitmap.recycle()方法来释放Bitmap占用的内存空间)
3.Reuse(重用)当第一次使用完以后,尽量给其他的使用
4.Recycle(回收)返回资源给生产流
5.Review(检查)回顾检查你的程序,看看设计或代码有什么不合理的地方。)
3. 数据库使用完成后要记得关闭cursor
4.广播使用完之后要注销
5. 小tip: 避免创建不必要的对象最常见的例子就是当你要频繁操作一个字符串时,使用StringBuffer代替String;避免使用枚举,枚举变量非常方便,但不幸的是它会牺牲执行的速度和并大幅增加文件体积;永远不要在for的第二个条件中调用任何方法
十四、设计模式(24)
单例模式(application)、工程模式、策略模式、监听者模式、观察者模式等
十五、framework
1.准备Linux下的环境(python的安装、Git的安装(sudo apt-get install git)、安装一些类库、JDK的安装(2.2以后要用jdk6.0))
2.下载源码(安装repo(基于git的管理工具)、初始化Repo客户端(repo init –u **–b 版本名称)、开始同步(repo snyc)、验证GitAndroid版本(gpg –import 然后输入秘钥 保存之后,输入 git tag –v tag_name))
3.Building (初始化source build、envsetup.sh 、lunch full(模拟器/full_crespo真机) –eng(开发者权限)、然后编译 make j4(单核刷机))
4.在out/target/product/generic/路径下有三个img文件(system.img/ramdisk.img/userdata.img)
Emulator启动模拟器
5.系统的程序在哪 out/target/product/generic/system/app
系统源代码位置 packages/apps/***
修改 sdk(make sdk)目录: out/target/product/generic/sdk
十六、JNI
十七、驱动开发
十八、SDK开发
十九、数据加密
对称加密、非对称加密
二十、程序问题的处理
OOM、ANR等
二十一、版本控制
SVN(集中式)、Git(分布式,常用命令cd/clone/init/add/commit/remote add/pull/push)
二十二、回调方法
1.回调接口方法interface
2.回调接口的实现(一个类去继承接口)implements
3.回调方法的调用 new 2中的类,调用他的方法
二十三、抽象方法和接口的区别
1.抽象类里面可以有非抽象方法但接口里只能有抽象方法
2.接口(interface)是抽像类的变体。在接口中,所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的,没有一个有程序体。接口只可以定义static final成员变量。
3.抽象类中可以为部分方法 提供默认的实现,从而避免在子类中重复实现它们, 提高代码的可重用性,而接口不可以,这也是抽象类的优点所在
4.接口可以继承多个,而抽象方法不行
二十四、第三方SDK
百度、高德、环信、SocketIO、友盟、leanCloud、Bomb、SharedSDK、ping++
看了“android重要知识点总结”的还看了:
1.高二政治必修四重要知识点总结(完整版)
2.管理学知识点总结
3.初中历史重要知识点总结
4.公共基础知识点总结
5.生物必修三第六章重要知识点的总结