android基础知识点
来源:互联网 发布:java自学视频推荐 编辑:程序博客网 时间:2024/06/14 01:27
Context启动Activity
通过Context启动的Activity要使用FLAG_ACTIVITY_NEW_TASK标记(如果不存在任务栈,就会重新创建一个。) 因为standard模式的Activity会默认进入它所从属的任务栈中,但是非Activity形式的Context并没有对应的任务栈。
导出anr日志
1.查看是否有日志:adb shell ls /data/anr/
2.导出相应的日志文件到电脑中: adb pull /data/anr/traces.txt d:/anr.txt
appcompat_v7
- appcompat_v7是Google自己的一个兼容包,就是一个支持库,能让2.1以上全使用上4.0版本的界面.
- 我们建项目时直接把最小SDK选在Android4.0以上不就不需要这个支持库
什么是线程安全
- 多线程访问同一个代码,不会产生不确定的结果。
往往可以通过synchronized加锁保证线程安全。
参考链接:java synchronized详解
序列化
- 有两种序列化的方式:Serializable和Parcelable(Android独有)。在内存的序列化上,建议使用Parcelable。但是在对象存储和网络传输的时候,建议使用Serializable。
- 序列化是把对象转换为字节序列。反序列化则反之。
- (Serializable)最好显示指定UID(自动生成的会收到类名称、接口名称、以及成员名称的影响,可能会发生改变。就会抛出InvalidClassException异常)。如果对类进行了不兼容性修改的时候,需要修改UID。
RecyclerView使用
- 相比ListView和GridView来说,更加方便使用。(轻松item、网格、瀑布流等)
- 可以定义很多动画
使用:此控件需要引入v7jar包。地址:https://pan.baidu.com/s/1mhJ0w5q
android图片格式
webp格式
- 谷歌开发的旨在加快图片加载速度的格式。图片压缩面积只有jpeg的2/3。可以节省- 大量的服务器带宽资源和数据空间。
- 但是是有损压缩。比较编码的jpeg格式,编码同样质量的WebP格式需要更多的计算机资源。
JPEG格式
- 一般大小有几十K
- 颜色更丰富,更饱和
- 使用建议:不需要保存图片的透明背景,需要保存图片质量,色彩以及饱和度。
PNG
- 一般大小有几百K
- 颜色没有那么丰富
- 使用建议:需要透明,
GIF
如何返回三方应用
注意是返回,而不是重启三方应用
- 最重要的就是获取第三方应用的上下文
- 根据上下文找到启动此app的intent
参考链接:https://www.zhihu.com/question/30153342
启动模式
- Standard:标准模式,每次都会新建一个实例。
- SingleTop : 需要创建的实例是否在栈顶,如果是,那么就无需创建新的实例。否则新建
- SingleTask:需要创建的实例在栈中是否存在。如果存在,就置顶。另外会把此实例以上的全部移除。
- SingleInstance : 会在新的任务中创建。但是通过此实例,再次创建的实例,还是会回到以前的任务中。
事件传递
- 有3个方法,dispatchTouchEvent、onTouchEvent、onInterceptTouchEvent(容器专属)
- 事件先执行dispatchTouchEvent(Activity->ViewGroup1->ViewGroup2->View)
- 然后执行onTouchEvent(View->ViewGroup2->ViewGroup1->Activity)
- 如果每个方法都是return fasle,就按照上面顺序往下分发
Activity
- dispatchKeyEvent,不管是return true还是return false,onKeyDown和OnKeyUp方法都不会再执行。实际测试,发现Activity中的onInterceptTouchEvent没有执行(为什么???)
- onTouchEvent:整个事件流程的最后执行
ViewGroup
- 返回 true、false、super.执行流程是不一样的
- dispatchTouchEvent:1、return super.不执行onInterceptTouchEvent。2、return false执行onInterceptTouchEvent方法。3.return true,会执行上一个容器orActivity的onTouchEvent方法(不执行自己的)
- onInterceptTouchEvent:return false,顺序往下执行。如果return true,表示拦截成功,直接执行本容器的onTouchEvent事件。如果想直接执行此控件的onTouchEvent方法,必须通过此方法
- onTouchEvent:返回supe 和返回false的的含义是一样的,都是事件继续往上分发
控件
- 监控控件的点击事件也会终止事件往下下发
- dispatchTouchEvent:return true会终止下发(不会执行onTouchEvent,而且监听里面的方法不会执行)。
- onTouchEvent:return true(监听事件中的回调不会执行)
ACTION_MOVE、ACTION_UP总结
- ACTION_DOWN事件在哪个控件消费了(return true),那么ACTION_MOVE和ACTION_UP就会从上往下(通过dispatchTouchEvent)做事件分发往下传,就只会传到这个控件,不会继续往下传
- 如果ACTION_DOWN事件是在dispatchTouchEvent消费,那么事件到此为止停止传递
- 如果ACTION_DOWN事件是在onTouchEvent消费的,那么会把ACTION_MOVE或ACTION_UP事件传给该控件的onTouchEvent处理并结束传递。
Android进程分类
- 前台进程-跟用户正在交互的Activity或者Activity用到的service等。内存不足时最后被杀死的
- 可见进程-可以是出于暂停状态的Activity或者绑定在其上面的service,即使被用户可见,但是因为失去了焦点,不能与用户交互—例如widget、输入法等
- 服务进程-使用startService启动的进程,不被用户可见,但是却是用户关系的。
- 后台进程-执行onStop方法停止的进程,不是用户当前关系的。比如QQ。一旦没有了内存首先被杀死。
- 空进程-不包含任何应用程序组件的进程,这种进程,一般是不让他存在的。
Dalvik
- Dalvik虚拟机每次都会将高级语言->机器语言
- Dalvik为谷歌公司自己设计的用户android平台的java虚拟机
- Dalvid虚拟机是谷歌等厂商开发android移动设备平台的核心组件之一
- 它可以支持.dex格式的java应用程序运行—.dex是专门为Dalvik应用设计的一种压缩方式(适合内存or处理器有限的系统)
- Dalvik经过优化,允许在有限的内存中运行多个虚拟机的实例(每个Dalvik应用作为独立的Linux进行执行)—可以防止在虚拟机崩溃的时候所有程序都关闭
ART运行时
- 安卓团队开始将精力投入到底层的一些组件,其中之一就是应用程序的运行时
- 更快、更高效率、更省电的ART运行时
- 应用安装的时候,预编译字节码到机器语言(AOT编译)。 在移除解释代码这一过程后,应用程序执行将更有效率、启动更快。
Art的优点:
- 启动快、运行快,体验好,触感反应更及时
- 续航能力更强
- 支持更低的硬件
- 系统性能显著提升
缺点:
- 占用更多的存储空间
- 应用安装时间长
0 0
- android基础知识点
- android 初学者 基础知识点
- 【Android】基础知识点备忘
- Android 基础知识点整理
- Android 基础知识点
- Android基础知识点总结
- Android基础知识点汇总
- Android 基础知识点总结
- android基础知识点
- Android基础知识点
- Android基础知识点总结
- Android View基础知识点
- Android 基础知识点概况
- android 基础小知识点
- Java基础、android知识点要求
- 【Android 面试基础知识点整理】
- android基础知识点(一)
- 关于 android基础知识点整理
- android之JSON解析
- BGRABitmap图像操作8:彩色纹理,阈值
- javascript入门基础(二)
- 【牛腩新闻发布系统之handler】
- 如何在C++中调用C程序?
- android基础知识点
- Java 序列化
- 路由匹配顺序
- 九度题目1481:Is It A Tree?
- The Same Calendar
- css选择器
- Ipad12.9寸上传的屏幕尺寸
- scala进阶32-用for实现map、flattop、filter
- Merge Two Sorted Lists