App类型划分

native app 原生
hybird app 混合
web app H5

类型对比

native 原生

优点

直接依托于操作系统,交互性最强,性能最好,功能最强大

缺点

开发成本高,无法跨平台,更新缓慢,审核周期慢,维护成本高

web

优点
开发成本低,可跨平台,调试方便
更新无需通知用户,不需要手动升级,无需安装app,不会占用手机存储空间
缺点
无法获取系统级别的通知,提醒,动效等等,用户留存率低,体验较差,设计受限

hybrid

优点
开发成本较低,可以跨平台,调试方便,维护成本低,功能可复用,性能和体验要比web app好,更新较为自由
缺点
相比原生,性能仍然有较大损耗,不适用于交互性强的app

ActivityName&PackageName

packageName 包名

应用的唯一身份标示,系统通过包名识别不同的应用,如两个相同包名的应用在安装时会提示覆盖

activityName 类名

activity android四大组件之一,简单来说就是一个界面,和用户进行交互
adb shell dumpsys activity | find “mFocuseActivity”

启动入口appActivity 和Activity有什么区别

appactivity 在APP中是唯一,作用来启动app
获取app入口activity

  1. aapt dumps badging app所在路径 | find "launchable-activity"

App页面布局

框架布局

所有空间都被放置在最左上的区域,下一个子控件会重叠覆盖上一个空间

线性布局

空间的排序方式 重置/水平

绝对布局

采用坐标的方式定位组件,左上角为原点(0,0) 向右为x轴递增,向下为y轴递增

相对布局

根据参照物(某空间)的位置,来确定空间的位置

表格布局

通过表格方式(行,列)布局空间位置

App页面空间

文本输入框

展示文字/文本

编辑框

接收用户输入的数据

图片控件

用来展示图片

按钮

用户通过点击button触发一系列的事件

复选框

复选/多选

进度条

加载进度条,表示正在加载某些数据

Android坐标系统

从屏幕左上角为原点 0,0 水平向右为X正方向,垂直向下为y轴正方向