Xiaoshier Blog

android 初接触

前提: 公司转型, 新的方向不需要 h5 前端, 我不愿去他们推荐的新公司, 决定辞职, 老板把我留下来, 问我是否有意愿转型做 app, 跟着做一个从 0 到 0.1 的项目, 我考虑了一下, 这也正是我缺少的经历, 我愿意一试. 转 ios 需要有 c 的基础, 建议我转 android. 我选择了转型 android 同时兼顾 h5 的工作, 一条更难得路.
开启 android 的学习开发历程. 这将会是一个很苦的一大段时间, 我愿意挑战一个全新且未知的领域, 希望自己能够坚持下去, 加油.

背景: 前端入行 2 年, 属于自学过来, 没有前端方面的人指导, 目前阶段, 前端基础布局很扎实, js 使用提高中, 使用新的框架等工具, 可以边学边用, 但写的不好. 没有编程思想, 仅是代码的简单堆砌, 但又渴望能改变现状.
java 知识: 0;
android 知识: 0;

老板能够让我转型, 从 0 开始, 我也是挺感激他的. 应该是看到我身上的某些特性, 他特别欣赏, 他一直强调要

第一步

在网上查了相关的书籍, 并购买

安装 android 所需环境

亦是通过网络查询, 安装现阶段使用最多的软件

  1. 安装 android studio

##与 web 页面的对比
| file | android | web |
| – | – | – |
| 页面 | xml | html |
| 样式 | styles.xml | css |
| 类名 | style>item.name | class |
| 样式引用 | 写在行内; 一个属性一个值 | 类名统一 |

知识点

  1. 每个 java 文件中都有一个主类, 是AppcompatActivity 的扩展类
  2. 每个类中有一个启动函数 onCreate() 函数, 类似 java 中的 main 函数( java 中 只有入口文件有一个 main 函数, 或者其他场景是测试使用 main 函数 )
  3. 使用的每个实例对象都要 import 该类(粗浅的认知)
  4. 每个活动都是一个类, 要在 mainifest.xml 中注册
  5. intent 用户活动之间的跳转, 有隐式和显示两种, 也可在活动跳转时加上数据的传递, 由上一个活动传递到下一个活动, 打印信息, 需要在模拟器中点击发生活动跳转
  6. 安卓系统是 Linux 系统, 每个应用都是一个用户, 系统给每个应用一个默认 ID, 为应用的文件分配权限, 只有拥有该 ID 的应用才能访问到该用户下的文件, 通过用户来管理文件的独立性
    每个应用启动时有自己独立的进程, 每个进程又有自己的虚拟机, 应用代码与其他应用的代码是在相互隔离的环境中

  7. 返回栈
    standard: 每当启一个新的活动, 会在返回栈中入栈, 并位于栈顶. 不论该活动是否位于栈顶, 系统都会再创建一个新的实例, 堆入栈顶
    singleTop: 如果栈顶是当前活动, 系统不会再次创建该活动的实例
    singleTask: 在创建新的活动时, 系统会检测返回栈中是否有该活动的实例, 如果有则使用该实例, 该实例之上的活动全部被出栈即 先执行目标活动的 onRestart 然后执行其他活动的 onDestroy
    singleInstance: 创建新的返回栈,

  8. 继承某个类, 会自动执行类中的代码, 如: 类中执行了某个函数, 那么继承者也会执行该函数

  9. 可以不实例化对象, 直接对类进行方法的调用
  10. 图片命名必须是小写, 数字, 或下划线, 不可使用驼峰式

出现的错误

  1. 在练习百分比布局时, 由于书上的版本低于我练习版本, 加上 我在build.gradle 中添加配置时, 书写错误, 导致报错, 排查了半天
    得出的最后结论是, 库的版本号要保持一致, 不然无法编译通过
    img1
    img2