初识Android | 青训营笔记

84 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第1天

交付含义:交付分为对外、对内和自身

  • 对外:创造用户价值
    • 第一层:页面+逻辑+数据
    • 第二层:多样化需求
    • 第三层:体验+质量+安全+个性化
  • 对内:节省成本
    • 第一层:单人效率
    • 第二层:团队和公司效能
  • 对自身:打造技术品牌
    • 第一层:基本技能
    • 第二层:打造技术高度
    • 第三层:综合素养

认识Android系统-Android平台框架

  1. 系统应用层:自己开发的App和系统自带的App,可以直接调用系统APP,自己开发的APP也可以提供给其他产品类似的调用功能。
    • Dialer(电话)
    • Email(邮件)
    • Calendar(日历)
    • ······
  2. Java 应用程序接口层:提供给开发者的接口,主要技术栈是最基础的交付内容,包括页面+逻辑+页面。
    • Content Providers
    • View System
    • Managers
      • Activity(活动)
      • Location(位置)
      • Package(包)
      • Notification(通知)
      • Resource(资源)
      • Telephony(电话)
      • Window(窗口)
  3. 原生C/C++库和Android运行环境层:一些核心系统服务和组件是用C/C++编写的,可以用Android NDK直接从原生代码访问某些原生平台库;把DEX字节码进行编译,优化执行效率。
    • Native C/C++ Libraries
      • Webkit
      • OpenMAX AL
      • Media Framework
      • OpenGL ES
      • ······
    • Android Runtime
      • Android Runtime(ART)
      • Core Libraries
  4. 硬件抽象层:主要提供硬件组的封装,当框架API要求访问设备硬件时,Android系统将为该硬件组加载模块
    • Audio(音频)
    • Bluetooth(蓝牙)
    • Camera(相机)
    • Sensors(传感器)
    • ······
  5. Linux 内核层:Android平台基于Linux内核,如线程和内存管理。可让Android利用主要安全功能,允许设备制造商为著名的内核开发硬件驱动程序。
    • Drivers(驱动)
      • Audio
      • Binder(IPC)
      • Display
      • Keypad
      • Bluetooth
      • Camera
      • Shared Memory
      • USB
      • WIFI
    • Power Management(电源管理)

APK的构成

  • AndroidMainfest.xml:清单文件,生命APP中四大组件,以及权限等
  • classes.dex:代码文件,所有编写的Java
  • res:资源文件夹,包括图片、颜色、字符串,以及搭建的XML布局文件
  • META-INF:文件夹,存放签名和证书,用于校验和安全
  • lib:文件夹,主要存放C/C++代码编译成的.so文件
  • (*)resources.arsc:程序的语言文件,可用AndroidResEdit工具翻译,也可用Apk Tool工具反编译后在开始修改

认识Git

  • 组成
    • Workspace:工作区,本地电脑存放项目文件的地方,自己来指定位置
    • Remote Repository:远程仓库,代码存在的地方
    • Local Repository:本地仓库,把代码拉去到本地存放的地方
    • Index / Stage:本地仓库的暂存区

git关系图.png

  • 使用步骤
    1. 本地设置
      • git config --global user.name "user name"
      • git config --global user.email "email@github.com"
    2. 创建本地仓库
      • git init
      • git clone <url>
      • git pull
    3. 本地分支
      • 创建 git branch<branch-name>
      • 切换 git checkout<branch-name>
    4. 提交
      • git add
      • git commit -m "commit_info"
      • git push

···