1. 为什么要用ButterKnife
2. ButterKnife原理
1. 为什么要用ButterKnife
- 使用注解代替findViewById和事件绑定,简化代码,节省开发时间
- 能够方便的处理Adapter中的ViewHolder绑定的问题
- 使用过程中不会影响app的运行效率和性能(编译时注解)
- 代码更清晰,可读性更强
2. ButterKnife原理
实现原理
ButterKnife的原理就是利用注解和注解处理器针对每个Activity生成一个相对应的类,将原本需要手动编写的findViewById的view绑定代码和点击事件监听及资源id的绑定逻辑,利用注解处理器自动生成代码。
ButterKnife的实现步骤:
- 定义注解
- 编写注解处理器(Java项目)
- 扫描所有的ButterKnife注解
- 根据文件将注解分开
- 生成辅助类文件,调用findViewById方法,绑定View
- 在app中使用注解,并绑定当前的Activity即可使用
3. git
此文非git的面试题,主要写一下TortoiseGit的操作。具体的Git分支管理策略普通开发人员用不到,此处不表。
git基本命令
3.1 集中式vs分布式
-
集中式版本控制系统
版本库是集中存放在中央服务器的,干活的时候都是用的自己的电脑,所以要先从中央服务器获取最新版本,然后干活,代码写完之后再将相应代码提交到中央服务器。必须联网才能够clone和push。
-
分布式版本控制系统
个人电脑也可以有一个完整的版本库,每个人在各自的电脑上编写代码,提交到本地的版本库,然后同步到服务器,其他用户也是一样,在本地工作,不断给服务器交换最新修改。
3.2 TortoiseGit的安装
命令行之前写过一次,本次不写,只写图形化的一些操作。
- 首先准备两个安装包,git的安装程序和TortoiseGit的安装程序
- 先安装git的安装程序,一路下一步即可,安装完成后,所有程序中能看到Git文件夹,右键能看到Git_bash_here的菜单
- 安装TortoiseGit,一路下一步即可,安装完成后,右键能看到如下的菜单
-
TortoiseGit设置用户名和邮箱
右键->TortoiseGit->Settings->Git,右侧就能看到User Info,填写下用户名和邮箱即可。
3.3 TortoiseGit的使用
Git和SVN功能类似,clone,push,pull等功能基本没有区别,Git的强大之处主要在于分支的操作
开发者在本地建立自己的分支,编写提交代码,在未push到远端时都不会影响项目代码,而本地也可以维护一个分支,有自己的提交记录,开发完成后再合并到主分支,push到远端即可
-
Git clone
右键->TortoiseGit->Git clone,填入服务器地址即可拉取远端代码
-
新建分支(本地)
右键->TortoiseGit->Create Branch
输入新分支名字,确定即可创建新的分支 -
本地开发,提交到本地
右键->Git Commit(后会跟当前分支名)
-
切换分支
右键->TortoiseGit->Switch/Checkout
选中本地的主分支,然后确定即可切换到主分支 -
合并分支
右键->TortoiseGit->Merge
选择需要合并到主分支上的分支名称,确定 - push
将本地合并完的内容push到远端对应的分支
右键->TortoiseGit->push
push上去之后,showLog即可看到对应的日志,从分支的提交记录能看到先提交到NewBranch然后和Master合并的
-
show Log
右键->TortoiseGit->show Log,这样就能看到当前分支的提交记录
-
删除分支
前半部分和切换分支一样
右键->TortoiseGit->Switch/Checkout
分支名字后面,点击打开分支引用,在分支上右键,即可重命名和删除分支
- 更新版本库
从安全的角度说,提倡Fetch然后Merge
pull(拉取):从远程拉取最新代码并合并到本地库
Fetch(获取):从远程拉取最新代码到本地,并不会Merge
-
比较文件差异
选中文件,右键TortoiseGit->diff,可以看到当前这个文件本次修改了哪些内容。
- Git冲突解决
冲突是避免不了的
做到以下几步能避免大部分Git冲突- 明确的代码提交规范
- 及时获取新版本代码
- 修改后及时提交
- 两个人同时修改同一个文件名,其中一个人提交后,另一个获取后再使用(商定好文件名)
- 内容冲突,拉取逻辑后,解决冲突后再提交