Android知识整理总结(三)


Asset目录与res目录的区别

 res 目录下面有很多文件,例如 drawable,mipmap,raw 等。res 下面除了 raw 文件不会被压缩外,其余文件都会被压缩。同时 res目录下的文件可以通过R 文件访问。

Asset 也是用来存储资源,但是 asset 文件内容只能通过路径或者 AssetManager 读取。

Android怎么加速启动Activity

 启动应用 和 普通Activity启动应用 :Application 的构造方法,onCreate 方法中不要进行耗时操作,数据预读取(例如 init 数据) 放在异步中操作启动普通的Activity:A 启动B 时不要在 A 的 onPause 中执行耗时操作。因为 B 的 onResume 方法必须等待 A 的 onPause 执行完成后才能运行

Android内存优化方法

 ListView优化,及时关闭资源,图片缓存等等。

如何自定义控件

 

  1. 自定义属性的声明和获取

    • 分析需要的自定义属性
    • 在res/values/attrs.xml定义声明
    • 在layout文件中进行使用
    • 在View的构造方法中进行获取
  2. 测量onMeasure

  3. 布局onLayout(ViewGroup)

  4. 绘制onDraw

  5. onTouchEvent

  6. onInterceptTouchEvent(ViewGroup)

  7. 状态的恢复与保存

Android5.0、6.0新特性

 Android5.0新特性:

 MaterialDesign设计风格

 支持多种设备

 支持64位ART虚拟机

 Android6.0新特性:

 大量漂亮流畅的动画

 支持快速充电的切换

 支持文件夹拖拽应用

 相机新增专业模式

 Android7.0新特性:

 分屏多任务

 增强的Java8语言模式

 夜间模式

各种Context区别

 Activity和Service以及Application的Context是不一样的,Activity继承自ContextThemeWraper.其他的继承自ContextWrapper

 每一个Activity和Service以及Application的Context都是一个新的ContextImpl对象

 getApplication()用来获取Application实例的,但是这个方法只有在Activity和Service中才能调用的到。那么也许在绝大多数情况下我们都是在Activity或者Service中使用Application的,但是如果在一些其它的场景,比如BroadcastReceiver中也想获得Application的实例,这时就可以借助getApplicationContext()方法,getApplicationContext()比getApplication()方法的作用域会更广一些,任何一个Context的实例,只要调用getApplicationContext()方法都可以拿到我们的Application对象。

 Activity在创建的时候会new一个ContextImpl对象并在attach方法中关联它,Application和Service也差不多。ContextWrapper的方法内部都是转调ContextImpl的方法

 创建对话框传入Application的Context是不可以的

 尽管Application、Activity、Service都有自己的ContextImpl,并且每个ContextImpl都有自己的mResources成员,但是由于它们的mResources成员都来自于唯一的ResourcesManager实例,所以它们看似不同的mResources其实都指向的是同一块内存

 Context的数量等于Activity的个数 + Service的个数 + 1,这个1为Application

IntentService的使用场景与特点

 IntentService是Service的子类,是一个异步的,会自动停止的服务,很好解决了传统的Service中处理完耗时操作忘记停止并销毁Service的问题

 优点:

 不需要自己去new Thread

 不需要考虑在什么时候关闭该Service

图片缓存

 查看每个应用程序最高可用内存:

int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);  

Gradle

 构建工具、Groovy语法、Java

 Jar包里面只有代码,aar里面不光有代码还包括代码还包括资源文件,比如 drawable 文件,xml 资源文件。对于一些不常变动的 Android Library,我们可以直接引用 aar,加快编译速度

你是如何自学Android

 首先是看书和看视频敲代码,然后看大牛的博客,做一些项目,向github提交代码,觉得自己API掌握的不错之后,开始看进阶的书,以及看源码,看完源码学习到一些思想,开始自己造轮子,开始想代码的提升,比如设计模式,架构,重构等。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值