0.0.2 Android开发系列——Android开发基础环境
来源:互联网 发布:阿里云医疗 编辑:程序博客网 时间:2024/05/19 20:21
Android开发的原理
Android开发的原理是非常复杂的,包含了Java打包,jni接口连接,编码混淆等很多的概念,这些细节我们都会在后文详细说明。这里我们给读者一个最简单的描述。
Android开发其实是在PC上通过编译工具将代码编译为可以在Android上运行的软件,即apk包(与Windows的exe类似)。然后将编译好的apk安装到Android上运行的过程。那么这个过程就分成两部分,一部分是在PC上编写、调试代码,另一部分就是将apk安装到Android上。
ADB原理
提到Android的开发环境,就不得不提adb这个工具。adb全称是Android debug bridge,是一个连接PC与移动端的桥梁。adb的原理其实非常简单,但是它起到了很好的连接PC与Android机器的作用。具体的原理见下面这张图。
该图引用自http://www.2cto.com/kf/201305/208134.html
从上图看,adb是一个B/S架构的服务程序。adb客户端通过socket连接到server端,这里的server端就是Android系统。
其实这个架构方式是比较奇怪的,一般的USB下位机(即USB外设)都是采用直接硬件会话的形式与PC交互,这里adb居然在驱动的层次上实了TCP/IP协议层,然后才到了真正的应用层。这里是有原因的,adb有如此强大的功能,归根结底是它其实构建在Linux shell基础之上。而Linux shell有成熟的socket通信操作方式,如ssh等远程协议都是非常安全、稳定的。在driver之上实现TCP/IP协议相对来说比较省时省力。当然因为Android自身的特点,完全依赖shell命令也不可能,因此在shell之外再实现一个adbd的服务也很有必要。
另外,Android调试也使用了Java本身的调试协议,这里Google应该是扩展了Java的jdwp协议,从而使用简化了Android本身的开发流程。
tips: 什么是Linux shell。翻译过来是Linux外壳,是包装在Linux内核外面,与用户交互的一个层次。这个层次我们上一章并没有出现,因为Android系统将这个层次在用户层面屏蔽掉了,使用Android Launcher取代了它的位置。但是开发者却要有相关概念,因为相对Launcher,它的功能更为强大。开发者经常是要用到的。
sdk,ndk与adt
刚刚开始Android开发,在搭建环境时会遇到sdk,ndk,adt等工具。我们这里做一个简单的说明来区分这几个工具。
sdk
sdk是Software Development Kit的简称,这是集成了所有必要Android开发工具的软件包。使用sdk manager进行管理。我们一直讨论的adb就是它的组件之一,部分机型的USB驱动也在这个开发包里面。这是开发Android必须安装的工具集,而且也是能完成全部功能开发的工具集。其中主要的工具包括adb、aapt(Android打包工具)、ddms(调试工具)、USB driver等。
ndk
ndk(Native Development Kit)是sdk的一种补充,ndk是用于jni(即java native interface)开发的工具,它的主要作用是编译C/C++代码。当开发者需要开发高性能软件是,需要安装这个工具,一般情况无需安装。
adt
adt是Android Development Toolkit的简称,adt是连接eclipse环境与sdk的桥梁。是eclipse开发环境下使用的工具,以便eclipse支持Android代码的编译和打包。不过随着Google从eclipse转向Android studio的开发,adt也不再是维护重点。
如果读者选择使用Android studio作为开发工具,那么adt也不是必须的了。
tips: Android Java与普通Java有区别么?答案是有,Android Java还是针对移动端做了一定的优化、很多的底层代码也有改动。但是读者可以不过分纠结这个问题,因为几乎所有的Java库在Android下都是可用的。
eclipse 与 Android studio
目前,Android开发环境主要分为两大阵营(用记事本的可以无视),基于eclipse+adt和Android studio两种。Android studio是基于Intellij idea开发的Android开发环境。在Java开发领域哪个IDE更好也是见仁见智,但是在Android开发领域,如果读者还没有入坑,推荐一开始就使用Android studio作为开发环境。
Android studio是Google官方推荐的开发环境,adt的更新幅度大幅减小,以后有可能会停止更新。而Android studio目前已经发布正式版,在开发效率和易用性上都完全超越之前的adt。
- 0.0.2 Android开发系列——Android开发基础环境
- Android 开发基础系列——前言
- Android Wear开发系列教程——搭建开发环境
- Android深入浅出系列之Android开发环境搭建—Android开发环境搭建JDK(一)
- Android深入浅出系列之Android开发环境搭建—Android开发环境搭建Eclipse(二)
- Android开发系列之搭建开发环境
- Android开发学习系列-----开发环境准备
- Android开发学习系列-----开发环境搭建
- Android应用开发系列(1)——Eclipse环境搭建
- android 敏捷开发系列(三)——《环境部署》
- Android Studio 系列文章(1)—开发环境的安装
- android基础(开发环境搭建)
- Android 开发基础系列——添加NDK路径
- 【Android开发学习系列】(1)——Windows下Android开发环境配置
- Android基础——2:开发环境搭建及开发工具
- Android基础入门教程——1.2 开发环境搭建
- Android基础入门教程——1.2 开发环境搭建
- Android开发基础(1)——Android开发环境的搭建
- Shell基础之-uniq命令
- Amazon 的 Docker - AWS ECS 是否適合作為網站部署的方案
- UI基础-04图片浏览器
- NSManagedObjectContext 积累
- mysql 更改默认数据目录
- 0.0.2 Android开发系列——Android开发基础环境
- 基于固件库的STM32F10x程序在Keil v5 MDK 下的RAM调试方法
- jquery1.9radio checkbox操作
- light oj 1422 Halloween Costumes (区间DP)
- java之--------socket编程(TCP)服务器请求与客户端
- hdu 3642(扫描线)
- 黑马程序员-Java基础:多线程
- hdu 3720 Arranging Your Team(暴力)
- C++ Primer : 第十四章 : 重载运算与类型转换之重载运算符