Android开发环境搭建

前面从全局和整体角度看了下Android包含哪些东西,自然,也涵盖了开发需要了解的内容,具体参见博文:从技术角度看Android大系统的构成_龙赤子的博客-CSDN博客

写完博文,感觉对Android开发也胸有成竹了,于是就决定对现有应用做一番修改。

知之非艰,行之惟艰,世间万物莫不如是。等到博主实际上手开工时,才发现无从下手。不过话说回来,对于“怎么吃掉一头大象”,哲人已有答案,那就是一口一口吃。我想,对于一个大系统的开发,自然也是这个理。那就先梳理思路,从搭建环境开始吧。

目录

一 准备过程:

二 根据调试目标,先了解NDK

三 Studio

四 SDK下载

五 安装虚拟机

六 搭建工作环境

1.搭建Samba 服务器:

2.释放开发包:

七 下载代码,准备编译

1.下载应用源代码

2.配置Android 的环境变量 ,参考已有版本。在/etc/profile文件中完成

3.准备编译工具

八 代码编译

九 下一步,调测程序

十 补充工程工具的问题

十一 补充SDK内容的问题


一 准备过程:

现在Android已经比以前完善了很多,这也包括文档部分。官方文档首页:https://developer.android.google.cn/docs。从官网上可以看到,文档包含了很多内容。可以说,你需要的基本都在上面。目前个人感觉缺少的就是初学者的入门路线图。这就好比去逛一个很大的景区,不熟悉的人希望有一个欧拉回路,能让自己做到不重复路线、不浪费时间,又能不漏掉景点;而对于常来之人,可能直达自己感兴趣的目的地才是首选。所以,有时候多也就意味着少。

具体来讲,文档包括了:

  1. 发布版本:各个版本及其特色。目前已经更新到Android13了。
  2. IDE(Android Studio):介绍IDE的下载、使用。包括工程的创建、迁移、导入等。在之前,我记得这些都是大家零碎整理的博客。官方很少见详细的说明。当然,也可能是我记错了。
  3. NDK:底层原生开发工具和环境的说明。介绍了版本的变迁、变化等。
  4. SDK:上层框架和Java层API的环境和相关开发工具。
  5. 开发主题:关于新功能新特性的说明。
  6. Kotlin:新的开发语言。
  7. 示例:一些开发视频和教程。

文档完善是个好事,但是多了有个问题,就是容易抓不住重点,找不到需要的内容。复杂的事物都是这样,慢慢习惯。

二 根据调试目标,先了解NDK

NDK 文档

https://developer.android.google.cn/ndk/guides

NDK 下载

https://developer.android.google.cn/ndk/downloads/older_releases#ndk-17c-downloads

android {

    ndkVersion "17.2.4988734"

}

三 Studio

https://developer.android.google.cn/studio/projects/install-ndk

四 SDK下载

现在官方不再单独提供SDK的下载,而是绑定到了Studio中。关于在Studio中下载SDK的方法,后面再补充。

也可通过其他途径下载:

https://www.androiddevtools.cn/

但是版本也都比较老。另外,解压缩后,无 platforms,需要再单独下载,比较麻烦。

五 安装虚拟机

使用Virtual box 报 0x00000000地址不可写错误。网上查找说是Win7破解版需要更新主题。因为电脑一直比较稳定,不打算替换。放弃该方案虚拟机。

换用Vmware Workstation. Player16及以上版本,要求Win8及以上系统,放弃,继续使用老的Workstation。

Ubuntu使用了较新的20大版本。

安装成功后,Security Crt ssh连接提示密钥交换错误。这是因为Ubuntu更新的原因。按网上方法,添加对旧加密方法的支持。具体来说,错误如下:

Key exchange failed.

No compatible key exchange method. The server supports these methods: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256

使用Xterm工具连接成功。根据如下网站信息,更新 ssh配置后,Security Crt ssh登录成功。我本人执着于Security Crt主要是多个窗口切换比较方便,习惯了。

https://www.modb.pro/db/382057

安装32位的库,方法来自Android 官方文档的说明。(好像是安装Linux版本的Studio所需)

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386

六 搭建工作环境

1.搭建Samba 服务器:

下载 Samba软件

修改配置文件

重启smbd服务。方法见网络

2.释放开发包:

拷贝NDK压缩包,解压到工作目录。下面所述是在Linux虚拟机里搭建Android编译环境。主要是因为要编译老代码。如果是新开发,可以在Windows下使用Android Studio,一站式解决。

七 下载代码,准备编译

1.下载应用源代码

2.配置Android 的环境变量 ,参考已有版本。在/etc/profile文件中完成

需要Java 环境变量

需要Ndk 环境变量

需要SDK 环境变量

3.准备编译工具

考虑到下载的SDK只是一个框架,内容框架,很多内容,包括platforms等需要再单独下载。而现在,Android已不再单独提供这些包的下载。相关内容已经嵌入到Android studio里面,需要通过该工具来下载。于是,先下载Studio,安装后看。

如果可以通过Studio下载成功,则再从Studio安装目录中提取出来使用。或者使用command tools 方式,Android提供通过命令行的方式来下载上述包。或者第三种方式,就是快速的将原来的包拷贝过来,测试用看看。

这里选择第三种方式。最后,拷贝Ant构建打包工具。至此,环境构建完成。

八 代码编译

环境构建好后,编译看效果。具体过程略。

九 下一步,调测程序

具体内容略。主要涉及多个NDK版本的尝试,开发环境Eclipse和Android Studio的切换等。

十 补充工程工具的问题

中间用Studio调测后,回到Eclipse,结果工程不能用了。

首先是打开Eclipse,弹出框提示Failed to get the required adt version number from the sdk

之前从来没有遇到这个问题

 

继续编译工程时,IDE工具下面的信息框提示Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!

提示有错误,需要先处理错误。

clean工程后,继续尝试,问题仍然存在。

关闭Eclipse后再打开尝试,问题仍然存在。

关机重启,打开Eclipse尝试,问题仍然存在。

到此,基本确定工具环境有问题了。

网上搜了一些资料后,提示说跟Studio升级工具有关。

回想了一下,的确,在用Studio验证弹框问题时,顺便升级了几个SDK版本和build tools。

我估计问题跟升级build tools有关。另外,SDK目录下的SDK Manager可执行程序点击运行没反应,而其他版本SDK目录下的则不存在该问题。

分别检查了下Eclipse和Studio的SDK目录,发现两个用了同一个目录。因此,Studio的工具和SDK版本升级操作,肯定是影响到了Eclipse对相关工具的使用。

Eclipse应该是要低版本的工具和SDK。

于是,单独为Eclipse构建了一个低版本的环境,再次打开Eclipse,进入到工具栏的window->preference里面,指定Android项目的路径。

执行Apply,重新编译,通过。问题解决。

看来以后Studio和Eclipse就要各自用各自的SDK了。Eclipse下的目前暂时避免升级,以免带来意外的问题。

 

十一 补充SDK内容的问题

关于SDK中包含的内容,进行补充。

可以通过Studio看到,主要有两部分,一部分是平台包,一部分是工具。

平台包好理解,包含了各个Android版本的支持包。右边显示是否已安装。每一个平台的包里有那些东西,我们点开右下角的Show Package Details,就可以看到更详细的信息。

这里,我们选取一个最多的看看。

首先是SDK本身,里面包含了大量的支持jar包,我们编写应用的组件级支持就在这里,否则编译时就会找不到相关类和接口。

其次,有部分源码。以前的版本还有例子代码,后来google把例子移走了。可能官方文档里可以找到,不过不是很确定。

再次,就是支持该级别API的各种类型产品的镜像包。区分了不同的平台。这些是模拟器运行的基础。

最后,就是Google的API和带Google本身提供的一些API的镜像

看完平台包,我们再看看SDK工具集。

首先是构建工具。这个看着是跟API版本走的。

其次,CMake,就不用多说了。

再看,东西不少。模拟器,命令行工具,布局解释器,NDK包,文档,平台工具,SDK工具。这几个工具,单从名字上看,都分不清是做什么用的。这还没完,继续往后看,还有

例子程序,支持库等比较杂的东西。

作为开发者,我们并不是要去详细了解这里的每一个都是干什么用的。技术层面来讲,了解其中的部分就可以了,主要是有一个直观的感受。从学习角度来看,要在心里清楚,我们开发的一个个APP就如同构建和装饰的一个个房间,是在别人大量而又复杂的工作基础上展开的。虽然不用实现地基和骨架的事,但不能觉得没有这些事。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙赤子

你的小小鼓励助我翻山越岭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值