Android进阶学习有哪些知识点

发布时间:2020-07-29 12:50:39

来源:亿速云

阅读:114

作者:Leah

本篇文章给大家分享的是有关Android进阶学习有哪些知识点,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

一、Binder

1、介绍Binder

Binder是Android中特有的IPC方式。基于Binder,Android还实现了其他的IPC方式,比如AIDL、Messenger和ContentProvider。Binder的优点在于效率高、安全性好。

2、Binder的通信过程

(1)Server在Service Manager中注册:Server进程在创建的时候,也会创建对应的Binder实体,如果要提供服务给Client,就必须为Binder实体注册一个名字。

(2)Client通过Service Manager获取服务:Client知道服务中Binder实体的名字后,通过名字从Service Manager获取Binder实体的引用。

(3)Client使用服务与Server进行通信:Client通过调用Binder实体与Server进行通信。

二、序列化

Android的序列化方式:为了解决Android中内存序列化速度过慢的问题,Android使用了Parcelable。

三、Framework

1、App的启动过程

(1)ActivityThread:依赖于Ui线程,实际处理与AMS中交互的工作。

(2)ActivityManagerService:负责Activity、Service等的生命周期工作。

(3)ApplicationThread:System Server进程中ApplicatonThreadProxy的服务端,帮助System Server进程跟App进程交流。

(4)System Server:Android核心的进程,掌管着Android系统中各种重要的服务。

2、Apk安装的主要步骤

(1)将apk文件复制到data/app目录

(2)解析apk信息

(3)dexopt操作

(4)更新权限信息

(5)完成安装,发送Intent.ACTION_PACKAGE_ADDED广播

四、Context

1、概念

不论是Android小白还是经验丰富的Android开发者,对Context都不会陌生。在加载资源、启动一个新的Activity、获取系统服务、获取内部文件(夹)路径、创建View操作时等都需要Context的参与,可见Context的常见性。Context字面意思上下文,或者叫做场景,也就是用户与操作系统操作的一个过程。

2、Context的应用场景

五、Android性能优化

性能优化是Android进阶学习的一个重要知识点。关于Android的性能优化我们可以从布局、绘制、内存优化

(1)布局优化

如果父控件有颜色,也是自己需要的颜色,那么就不必在子控件加背景颜色;如果每个自控件的颜色不太一样,而且可以完全覆盖父控件,那么就不需要再父控件上加背景颜色;尽量减少不必要的嵌套;能用LinearLayout和FrameLayout,就不要用RelativeLayout,因为RelativeLayout控件相对比较复杂,测绘也想要耗时。

(2)绘制优化

一方面onDraw方法中不要做耗时的任务,也不做过多的循环操作,特别是嵌套循环,虽然每次循环耗时很小,但是大量的循环势必霸占CPU的时间片,从而造成View的绘制过程不流畅。另一方面,除了循环之外,onDraw()中不要创建新的局部对象,因为onDraw()方法一般都会频繁大量调用,就意味着会产生大量的零时对象,不进占用过的内存,而且会导致系统更加频繁的GC,大大降低程序的执行速度和效率。

(3)内存优化

内存泄漏指的是那些程序不再使用的对象无法被GC识别,这样就导致这个对象一直留在内存当中,占用了没来就不多的内存空间。因为有内存泄漏,所以内存被占用越来越多,那么GC会更容易被触发,GC会越来越频发,但是当GC的时候所有的线程都是暂停状态的,需要处理的对象数量越多耗时越长,所以这也会造成卡顿。那么我们就可以针对集合类泄漏、单例/静态变量造成的内存泄漏、匿名内部类/非静态内部类、以及资源未关闭造成的内存泄漏做出相应得策略。

以上就是Android进阶学习有哪些知识点,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

android进阶知识总结,Android进阶学习有哪些知识点相关推荐

  1. Android进阶知识树——Android Handler消息机制

    1.概述 在安卓程序启动时,会默认在主线程中 运行程序,那如果执行一些耗时的操作则UI就会处于阻塞状态,出现界面卡顿的现象,再者用户的多种操作,系统是如何做到一一处理的,系统又是如何管理这些任务的,答 ...

  2. Android进阶知识树——Android消息队列

    1.概述 在安卓程序启动时,会默认在主线程中 运行程序,那如果执行一些耗时的操作则UI就会处于阻塞状态,出现界面卡顿的现象,再者用户的多种操作,系统是如何做到一一处理的,系统又是如何管理这些任务的,答 ...

  3. Android 必须知识 PWA Android Instant Apps

    2019独角兽企业重金招聘Python工程师标准>>> 1.Progressive Web Apps (以下简称 PWA)是 Google 在 2015 年推出的项目,是一种致力于将 ...

  4. python爬虫基本知识_爬虫 (十三) 学习 python 基础知识点的正确姿势 (六)

    我会以比较学习的方式,主要拿Python和我之前学习的javascript进行比较,拿学习javascript的学习经历来迁移到学习Python,如果你在此之前有一门编程思维,那么你可以这么做,如果没 ...

  5. SLAM 基本知识树(SLAM学习的所有知识点概述)

    参考:https://blog.csdn.net/lxiaoxiaot/article/details/6779936 一.SLAM知识树 SLAM需要具备三维空间刚体变换(四元数.旋转矩阵).相机成 ...

  6. Android开发知识体系,技术实现

    想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样. 本文参考了目前大部分 Android 应用启动优化的方案,将大家的方案做一个汇总,如果你有这方 ...

  7. Android进阶知识:绘制流程(上)

    1.前言 之前写过一篇Android进阶知识:事件分发与滑动冲突,主要研究的是关于Android中View事件分发与响应的流程.关于View除了事件传递流程还有一个很重要的就是View的绘制流程.一个 ...

  8. 这份354页笔记的Android进阶知识+大厂高频面试题,绝对干货

    程序员与别的专业有所不同,其他专业都是越老越香,而程序员却是一个例外,因为计算机技术更新太快,而且工作强度很大,因此大部分程序员只会写 3 年代码.3 年后要不晋升做项目经理,要么转行,个别研究所除外 ...

  9. Android程序员该如何进阶学习以预防35岁中年职场危机?

    一.大家都在担心的问题 不只是Android,很多程序员都在担心业界的"35岁危机",担心自己到35岁后就被市场淘汰. 比如最近就经常被大家问到这样的问题,比如这样的: 大佬好,目 ...

最新文章

  1. Eclipse的SVN插件移动中文名称文件提示org.tigris.subversion.javahl.ClientException: Bogus URL...
  2. SQL Server 2005 在建立与服务器的连接时出错,错误26收藏
  3. 面向对象的三大特征之多态(第三个必要条件)
  4. Java并发编程(1):可重入内置锁
  5. PLinq Lookup ParallelQuery
  6. 微软官方上线了Python教程,7个章节就把Python说通了!
  7. 【转】dicom网络通讯入门(2)
  8. memcpy和memmove的区别以及内存重叠问题
  9. Spring-Boot (四) 集成Spring Security
  10. 收藏 | 那些机器学习必备知识
  11. 模拟退火算法_Matlab 二维模拟退火算法最优路径(主程序)
  12. 最大子段和之分治递归法
  13. 安装不成功_win10+cuda10.1+cudnn+tensorflow1.15.0安装
  14. 2000-2021年款雷克萨斯原厂全套维修手册+电路图资料下载
  15. 在Word2019中,如何让回车符消失
  16. CMD命令窗口全屏设置
  17. 利用pymupdf编辑修改pdf
  18. SSIS_创建SSIS包和数据源
  19. 目前超级计算机国内外发展状况,浅谈超级计算机发展的过程及研究现状
  20. 通过PS合成电影场景里海怪的场景

热门文章

  1. 【opencv学习手账】1.鼠标相应事件
  2. 【干货】数据库论文专题
  3. CPU-Z的安装与使用
  4. android 开关mic,无线麦克风接收器输出接口旁设有MIC/LINE切换开关时
  5. 2大学英语四级关于计算机的图表作文,英语通大学英语四级考试版:图表作文的写作...
  6. 微商低价位裂变引流技巧,微商怎样才能低价引流?
  7. 【周末轻松一刻】 GitHub 上的这些沙雕项目
  8. OBS+RED5+FFPLAY构建流媒体点直播平台 —— 实现自己的游戏直播不再是梦想
  9. 严防ERP进入恶性竞争 厂商不能再卖“大白菜”(转)
  10. 大学计算机uml ppt,南京大学计算机科学与技术系Object-OrientedSoftwareEngineeringUnifiedModelingLanguageUML幻灯片资料.ppt...