Android SDK开发

本文介绍了Android SDK的定义、结构和分类,包括系统SDK和应用SDK。探讨了Library、API和Framework的概念及其相互关系。讨论了SDK开发的标准,如简洁性、稳定性、高效性和轻量化。此外,还涵盖了API设计原则、版本管理和命名规则。

1.什么是SDK

 SDK: Software Development Kit —>软件开发工具包 

 用途:是为辅助开发某类软件而编写的特定软件包,框架集合等,

 结构:包含相关文档,范例和工具.

 分类:系统SDK   为特定的软件包,软件框架,硬件平台,操作系统等简易应用时所使用的开发工具集合  Google提供的系统SDK(Android SDK)

应用SDK   基于系统SDK开发的独立于具体业务而具有特定功能的开发工具集合   如友盟SDK,极光SDK,百度地图SDK等

 

2.辅助概念:Library,API,Framework


Library

Library即常说的,即一组或者几组类的集合。通常是应用中某些功能的具体实现或者对系统已有功能的增强或补充

对于Android开发而言,如常见的Support Library,以及各种网络请求库(OkHttp,Retrofit,Volley),图片加载库(Glide,ImageLoader),数据库操作等


Framework

Framework即常说的框架,即系统或者应用的骨架。通常表现为一组抽象的构建及构件实例间交互的方法.可以认为Framework规定了应用的体系结构,阐明了整体设计,写作构件之间的依赖关系以及控制流程.注意此处的Framework并不完全等同于你所熟知的Android Framework框架,可以认为Android Framework中体现了Framework的思想,并进行了实现.


API

API:Application Programming Interface 应用编程接口

是软件系统不同组成部分衔接的约定,即常见和编写的方法或函数


3.SDK Library API Framework 的联系


SDK:      主要由Framework,API及Library三部分构成 以及大量的示例和其他工具(如在Android SDK的tools目录下提供了大量的辅助开发工具)

Framework:定义了SDK整体的可重用设计,规定了SDK各功能模块的职责以及依赖关系

Library:  各个功能模块体现为Library

API:      各功能模块之间的内部通信及SDK外部通信(SDK对外提供服务的接口)则通过API进行


对于开发者,一般情况是为实现某种具体的业务需求而开发对应的SDK,提供给其他需求方使用.

比如极光推送的SDK主要实现消息推送功能,需求方只需要集成极光推送的SDK便可以使自己应用具备推送功能


4.SDK的标准 

简洁易用   使用SDK时需要写的代码少

稳定     运行在程序里稳定不出错  更新时API基本不变,业务稳定

高效     占用内存少  内存抖动少  耗电少  流量少

轻量     不大


——>解决办法  模块化 组件化 插件化 初始化 云服务 安全 核心逻辑采用C/C++(为了安全 数据加密类 模块算法类都应采用NDK开发,封装在so文件中,反编译比Java的反编译更难破解,通讯加密(对称或非对称,https)  设备安全  减少传输数据大小(数据压缩,json xml Protobul 协议,自定义二进制协议)    支持的最低系统版本  权限管理  日志服务)


5.API设计

内部API SDKAPI

方法  名称见名知意 

参数合法 

功能单一 

异常处理

权限控制(方法的公开与否)

方法重载(谨慎使用)

避免方法直接返回null

保护性copy

6. 版本

6.1版本命名 

V主版本号子版本号阶段版本号_日期版本号加希腊字母版本号.比如V1_1_1_170322_beta.

  希腊字母版本号说明

  • Alpha版:内部测试版,此版本表示该软件在该阶段主要是以实现功能为主,Bug相对较多,需要继续修改,通常只在内部流通流通而不对外开放.
  • Beta版:外部测试版,该版本相对Alpha已经有了很大的改进,不存在严重的Bug,但还是存在一些缺陷,需要进一步的测试以检查和消除Bug.
  • RC版:该版本已经相当成熟,不存在导致错误的Bug.与正式版相差无几.
  • Release版:该版本意味着”最终版本”,是最终交付用户或者公开发布的版本,也称为标准版.需要注意的是,该版本在发布的时候回以符合R来代替Release单词.


6.2版本号修改规则

    • 主版本号变化:当功能模块有较大的变化或者整体架构发生变化
    • 子版本号变化:当功能有一定变化
    • 阶段版本号变化:一般是Bug修复或者较小的变动,根据反馈,需要经常发布修订版本.
    • 日期版本号(170322):用于记录修改项目的当前日期,每天对项目的修改都要更改日期版本号.
    • 希腊字母版本号:此版本号用于标注当前软件处于那个开发阶段,当软件进入到另一个阶段是需要修改.

未完待续...





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值