稍微了解了一些Android开发的常识。
一些基础认知
JDK
这是Java的官方库(区别于第三方库),其中就提供了Java的运行环境,没太多好说的,选择一个偶数版本安装吧。
SDK
- 这是Google提供的Android开发工具包,对于开发上而言,类似于JDK,提供了Android的开发工具类和环境
- Android Studio其实就是Google定制版的intellij IDEA。可以理解为,增加了Android SDK的、具有JDK(Java环境)的IDE(大部分时候不需要翻墙,但是下载Android Studio的时候需要翻墙。)
- 安装的方式很简单:在Android Studio启动时选择
Configure
或者从Preferences
里进去,在Android SDK
里选中安装想要的SDK版本即可。 - 有更新的时候,勾选对应的版本,确认后就会自动更新了。
- 一般是选择比较新的。然后在架构项目的时候,选择要使用的SDK的版本,并明确target版本和最小支持版本(以配置的形式写在文件里,由此确定支持的安卓系统的版本范围——比使用的SDK的版本更新的就无法支持了)
NDK
- 针对C/C++需要(不同语言在做不同实现的时候的效率和效果不一样)
- 比如一般项目中就是在接口签名上用到
- Facebook厉害的图片库fresco也是用C/C++开发的,C/C++在图片的内存管理上比较优秀
- ImageView标签的底层实现也是C/C++
- 一般来说,会自动提示你安装的
Gradle和Maven
Gradle
- 包管理工具。由于Google在推Android Studio所以这个变成了现在的流行(默认);
- 在Android Studio里,你可以在teminal里通过
./gradlew
命令执行到它。
maven
包管理工具。用Eclipse的话会接触到。过时的家伙…
项目
文件结构
和前端开发类似,经常也是项目+一些类库,这些类库通常都是比较大众化,比较流行,比较有人维护的,都在Gradle的网站上找。
签名
- 可以通过Java命令行生成(Java KeyTool);Android Studio里也有可视化的界面
- 签名的意义在于更新应用的时候不会被冒名顶替,同一台手机里只有签名相同才能覆盖安装,更新版本。
包名
- 和iOS的 Bundle ID 类似,是唯一标识,可能被别人恶意注册;
- 一般是域名倒过来的顺序,这样大家一般都不会冲突。
发布渠道
- 一般会在包里埋一个常量,用来在日后统计包在哪里被下载,所以每次发布打包,都要打很多包(甚至可能多达1k多个?)
- 自己也可以有发布平台,提供一个链接,允许用户直接下载,或者允许渠道商来平台获取。
中间服务器
不同于iOS有官方的必经服务器,Android没有这样的限制,Google官方提供的服务器也被墙了。所以推送方面,一般是第三方如:极光、个推等。