初识Android开发

稍微了解了一些Android开发的常识。

一些基础认知

JDK

这是Java的官方库(区别于第三方库),其中就提供了Java的运行环境,没太多好说的,选择一个偶数版本安装吧。

SDK

  1. 这是Google提供的Android开发工具包,对于开发上而言,类似于JDK,提供了Android的开发工具类和环境
  2. Android Studio其实就是Google定制版的intellij IDEA。可以理解为,增加了Android SDK的、具有JDK(Java环境)的IDE(大部分时候不需要翻墙,但是下载Android Studio的时候需要翻墙。)
  3. 安装的方式很简单:在Android Studio启动时选择Configure或者从Preferences里进去,在Android SDK里选中安装想要的SDK版本即可。
  4. 有更新的时候,勾选对应的版本,确认后就会自动更新了。
  5. 一般是选择比较新的。然后在架构项目的时候,选择要使用的SDK的版本,并明确target版本和最小支持版本(以配置的形式写在文件里,由此确定支持的安卓系统的版本范围——比使用的SDK的版本更新的就无法支持了)

NDK

  1. 针对C/C++需要(不同语言在做不同实现的时候的效率和效果不一样)
  2. 比如一般项目中就是在接口签名上用到
  3. Facebook厉害的图片库fresco也是用C/C++开发的,C/C++在图片的内存管理上比较优秀
  4. ImageView标签的底层实现也是C/C++
  5. 一般来说,会自动提示你安装的

Gradle和Maven

Gradle

  1. 包管理工具。由于Google在推Android Studio所以这个变成了现在的流行(默认);
  2. 在Android Studio里,你可以在teminal里通过./gradlew命令执行到它。

maven

包管理工具。用Eclipse的话会接触到。过时的家伙…

项目

文件结构

和前端开发类似,经常也是项目+一些类库,这些类库通常都是比较大众化,比较流行,比较有人维护的,都在Gradle的网站上找。

签名

  1. 可以通过Java命令行生成(Java KeyTool);Android Studio里也有可视化的界面
  2. 签名的意义在于更新应用的时候不会被冒名顶替,同一台手机里只有签名相同才能覆盖安装,更新版本。

包名

  1. 和iOS的 Bundle ID 类似,是唯一标识,可能被别人恶意注册;
  2. 一般是域名倒过来的顺序,这样大家一般都不会冲突。

发布渠道

  1. 一般会在包里埋一个常量,用来在日后统计包在哪里被下载,所以每次发布打包,都要打很多包(甚至可能多达1k多个?)
  2. 自己也可以有发布平台,提供一个链接,允许用户直接下载,或者允许渠道商来平台获取。

中间服务器

不同于iOS有官方的必经服务器,Android没有这样的限制,Google官方提供的服务器也被墙了。所以推送方面,一般是第三方如:极光、个推等。