这是我参与「第四届青训营 」笔记创作活动的第1天
交付含义:交付分为对外、对内和自身
- 对外:创造用户价值
- 第一层:页面+逻辑+数据
- 第二层:多样化需求
- 第三层:体验+质量+安全+个性化
- 对内:节省成本
- 第一层:单人效率
- 第二层:团队和公司效能
- 对自身:打造技术品牌
- 第一层:基本技能
- 第二层:打造技术高度
- 第三层:综合素养
认识Android系统-Android平台框架
- 系统应用层:自己开发的App和系统自带的App,可以直接调用系统APP,自己开发的APP也可以提供给其他产品类似的调用功能。
- Dialer(电话)
- Email(邮件)
- Calendar(日历)
- ······
- Java 应用程序接口层:提供给开发者的接口,主要技术栈是最基础的交付内容,包括页面+逻辑+页面。
- Content Providers
- View System
- Managers
- Activity(活动)
- Location(位置)
- Package(包)
- Notification(通知)
- Resource(资源)
- Telephony(电话)
- Window(窗口)
- 原生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
- Native C/C++ Libraries
- 硬件抽象层:主要提供硬件组的封装,当框架API要求访问设备硬件时,Android系统将为该硬件组加载模块
- Audio(音频)
- Bluetooth(蓝牙)
- Camera(相机)
- Sensors(传感器)
- ······
- Linux 内核层:Android平台基于Linux内核,如线程和内存管理。可让Android利用主要安全功能,允许设备制造商为著名的内核开发硬件驱动程序。
- Drivers(驱动)
- Audio
- Binder(IPC)
- Display
- Keypad
- Bluetooth
- Camera
- Shared Memory
- USB
- WIFI
- Power Management(电源管理)
- Drivers(驱动)
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 config --global user.name "user name"git config --global user.email "email@github.com"
- 创建本地仓库
git initgit clone <url>git pull
- 本地分支
- 创建
git branch<branch-name> - 切换
git checkout<branch-name>
- 创建
- 提交
git addgit commit -m "commit_info"git push
- 本地设置