文档章节

如今Windows下的安卓开发环境如何

fnnn99
 fnnn99
发布于 2014/12/12 17:21
字数 761
阅读 196
收藏 6

  android 至今仍然不能靠谱的在 windows 下正常编译。官方虽然提供了用 cygwin 辅助编译的方法,但从来不推荐你使用该方法,仅仅当你非用 windows 不可时才会考虑。

  现实问题是,国内有很多搞安卓的人并不是搞应用而是搞设备的,安卓实际上被用于 Google 根本没有想象到的场合,并不仅限于手机平板。你常常会需要编译 android 本身,或者至少用到 android 框架层的代码。

  另外,如果你用到 C/C++ 的 NDK,在 Linux 下编译调试的优势非常明显,如果你需要编译一些第三方 C 代码就更是如此了,那常常需要 GNU 编译的工具链,而他们只在 Linux 下能够更好的运行。虽然 NDK 程序被证明也能在 Windows 下编译,但对于那些依赖 GNU 编译工具链的库,配置好靠谱的 Windows 环境比配置 Linux 环境困难很多倍。这句话或许可以解读为:招聘一个喜欢 Linux 环境的人做这件事情,比招聘一个喜欢 Windows 环境的人来做这些事情要容易很多。

  如果再要加上最后一块多米诺骨牌的话:现在很多硬件解决方案是由 CPU 芯片产商提供的从 CPU 到外围芯片硬件软件整套解决方案,同时 CPU 产商提供给了 android 的版本,很多硬件产商只要 CPU 产商不提供升级版 android 自己没有能力升级。CPU 产商往往只给你提供了用于 Linux 的工具链,于是你就只能在 Linux 下去编译他们提供的 android 源代码以及框架,也只能用他们这套工具链去编译你的 C/C++ 代码(如果你的代码依赖他们 CPU 厂商提供的库话)。

  总结:

  1,很多代码用到了 NDK,NDK 需要用 Linux 编译更方便,比方说绝大多数游戏都要用 NDK。

  2,很多开发者需要涉及 android 源代码,必须在 Linux 下编译。

  3,CPU 产商提供的工具链是 Linux 版本,围绕该 CPU 进行的相关优化,相关代码必须在 Linux 下进行开发(尤其是硬件解码音视频播放等等功能)。

  4,AVD只是界面分辨率兼容性测试的时候临时用一下的,实际调试一定是用真机,所以android开发效率与AVD性能无关。

  5,Windows 环境只能做很有限的一小部分与硬件无关的 android 开发工作,作为硬件厂商,你随机内置的程序当然都要针对该硬件优化,这些工作必须使用 Linux 来做,因此李楠所说的话从硬件产商的角度来看应该基本属实,这与 Windows 环境「烂不烂」无关,而是「能不能」的问题。本文由“www.zrnkyy.com”编辑

本文转载自:

fnnn99
粉丝 2
博文 120
码字总数 0
作品 0
深圳
私信 提问
Windows Mobile程序员玩转Android开发

现在的智能手机操作系统已经进入战国时代,老牌的Symbian、Windows Mobile和BREW面临着iPhone和Android等新势力的巨大挑战。最近有些闲暇时间了,可以研究下新手机操作系统的应用程序开发了。...

红薯
2009/06/29
9.9K
3
加快Android模拟器启动速度?

其实使用虚拟化的产品在性能上还是有很大的折扣,很多网友发现每次随着Android固件的更新、SDK功能的增加启动速度越来越慢,从早期的m3 版SDK到如今的1.5几乎足足慢了3倍,其实这是很正常的事...

红薯
2009/07/08
5.7K
2
Android 开发者不得不面对的五大问题

IDC最近一份关于移动应用开发的调查报告显示,Androdid开发者对谷歌的移动操作系统平台的兴趣正在下降。尽管依然有79%的开发者表示对Android “非常感兴趣”,但IDC的调查报告显示,一些迹象...

鉴客
2012/04/09
3.2K
9
CloudBox说明

1. 下载连结,下载后解压缩可直接开启 http://blog.csdn.net/cloudhsu/article/details/7443266 2. 此为xcode3模版, xcode可直接开启执行, xcode3与xcode4皆可直接执行 3. 若要使用此模版, 请...

长平狐
2012/10/08
96
0
构建Android开发环境

http://www.cn-cuckoo.com/2010/04/18/make-a-android-develop-environment-1512.html 在本文写作时,Android SDK的最新版本是2.1。现在,我们来看一看如何在Windows平台下构建Android 2.1开...

长沙老林
2015/07/22
90
0

没有更多内容

加载失败,请刷新页面

加载更多

获取map()以在Python 3.x中返回列表

我正在尝试将列表映射为十六进制,然后在其他地方使用该列表。 在python 2.6中,这很简单: 答: Python 2.6: >>> map(chr, [66, 53, 0, 94])['B', '5', '\x00', '^'] 但是,在Python 3.......

技术盛宴
10分钟前
4
0
基于TI达芬奇系列TMS320DM8148浮点DSP C674xBOOT SET启动选择开关、Micro SD接口

说明 由广州创龙设计的SOM-TL8148和SOM-TL8127核心板是Pin To Pin兼容,两款核心板公用同一块底板。DM8148与DM8127相比,DM8148有SATA接口,DM8127没有SATA接口;而DM8127有CSI2接口,DM814...

Tronlong创龙
13分钟前
4
0
产品经理如何有效进行需求管理?

需求是整个软件项目当中最重要一项输入。软件开发和传统生产行业最大的区别在于,需求总是模糊的、主观的和随时变化的。相对于电子产品、汽车等制造行业有形的硬件需求,软件开发的需求的描述...

Worktile
26分钟前
2
0
Python 判断变量是否是 None 的三种写法

代码中经常会有变量是否为None的判断,有三种主要的写法: 第一种是if x is None; 第二种是 if not x:; 第三种是if not x is None(这句这样理解更清晰if not (x is None)) 。 如果你觉得...

每天学Python
29分钟前
2
0
springboot初探——启动流程

前面已经介绍一下springboot,本篇开始介绍springboot在启动过程中做了什么,凭什么那么少的代码就能完成一个web项目。 其他的我们可以先不管,先来看一眼springboot的main方法 @SpringBootA...

计算机狼
48分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部