android知识点总结

一、四大组件

Activity (生命周期可编辑onResume和可见onStart,不可编辑onPause和不可见onStop)、Service AIDL,开始方式)、BroadcastReceived(有序,无序) 、ContentProviderUri

 

二、五大布局

LinearLayout RelativeLayout(降低布局嵌套) 、FreamLayout TableLayout AbsoluteLayout

 

三、通信机制

Intent(隐式,显示,两个之间的数据传递)、ServiceBroadcastReceivedHandler(多线程)sharedPreferred(如果跳转的次数太多,可以考虑本地文件存储了)、file(类似于sharedPreferred

 

四、动画

帧动画、Tween动画(移动、缩放、旋转、透明)

 

五、ListView

各种布局加载(动态加载布局)、优化(convertViewViewHolder、异步加载、分页加载)、notifyDataSetChanged更新数据

 

六、Fragment

Activity(使用FragmentManager)之间的通信、Fragment使用(getActivity()

 

七、线程、进程

 1.进程:一个应用程序在内存中的镜像 

2.线程:一个进程中可以包含多个线程

多线程、多线程下载

Thread Runnable Handler AsyncTask

应用场景:耗时操作(一般指5秒)和定时操作(schedule Task

具体场景:IO操作(网络操作、文件操作、数据库操作)、复杂的运算算法、消息接收方法的耗时操作、定时任务

3. 线程池的基本思想还是一种对象池的思想,开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。

 

八、httpsocket

Http(短连接)特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接

Socket(长连接特点 服务器监听,客户端请求,连接确认

区别、优缺点、返回码的含义

返回码200成功206部分成功404文件丢失503服务器未响应

 

九、数据存储

文件存储、SharedPreference(密码、判断)、SQLite(继承SQLiteOpenHelper,生成SQLiteDatabase 

对象来新建处理SQL语句,数据库升级)、网络存储(上传、下载)

 

十、自定义组件

两种方式:include(标签一般用merge);创建自定义控件(一般有响应按钮时调用)

两个主要方法measurelayout,要是自定义View,显示时用setContentView

十一、适配器

Drawable(.9图片)、 Layout Values(dimen) Java代码控制 、weight

 

十二、开源框架、开源组件

框架:Volley xUtil okhttpeventBusGsonfestJsonimageloaderPicasso(获取远程图片)zxing(二维码)

组件:pull2RefreshListViewSlidingMenu

十三、内存优化和程序优化

1.Android优化的布局使用merge标签优化层级不需要立即加载的布局,设置为GONE,系统会跳过,不加载使用ViewStub 实现按需加载ListView的优化)、

2. 对内存的优化

1.Reckon(计算)首先需要知道你的app所消耗内存的情况,知己知彼才能百战不殆

2.Reduce(减少)消耗更少的资源(BitmapFactory.Options设置inSampleSize, 这样做可以减少对系统资源的要求;如果对图片没要求可以设置RGB_565(每像素占2字节,默认的是ARGB_88884个字节)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 **版本名称)、开始同步(repo snyc)、验证GitAndroid版本(gpg import 然后输入秘钥 保存之后,输入 git tag v tag_name))

3.Building (初始化source buildenvsetup.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/***

 修改 sdkmake sdk)目录: out/target/product/generic/sdk

 

 

十六、JNI

十七、驱动开发

十八、SDK开发

十九、数据加密

对称加密、非对称加密

二十、程序问题的处理

OOMANR

二十一、版本控制

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、友盟、leanCloudBombSharedSDK、ping++


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值