如何在Mac下Androidandroid5开发环境搭建建

安卓开发者多数使用 Linux 吗?如今 Windows 下的安卓开发环境如何?
作为新手(没有编程基础)应该选哪一个?试了一下Windows下eclipse的AVD,速度很慢(现在已经get 到真机测试技能)。我的困惑是,如果我以后想要深入,选择哪一个平台会比较好?
按投票排序
说的很好,首先确实要区分场景到底是哪种类型的开发,做SDK应用区别不大,做设备的话倾向于用linux。补充几条个人体会:1. Linux不需要”装USB驱动“,任意新设备拿来lsub查看一下VID和PID,添加规则后就可以用adb和fastboot了2. Cygwin配置好了也许能编译AOSP,但Cygwin的软件包管理本身就是噩梦,兼容性也没有保障,花大量时间配置Cygwin是很不划算的一件事3. Linux下有大量成熟的工具辅助分析kernel dump4. 编译好AOSP后无需配置就可以gdbclient调试native process, Windows下gdb做一些配置也许可以,没试过5. 我需要同时工作在多个AOSP分支上的多个不同模块上,我用tmux session来管理工作环境的切换。每一个tmux session对应一个分支,每一个tmux session开7,8个window,每个window对应一个工作目录, 每个window分2~4个Panel,对应不同的工作内容(代码,log,编译等等)6. 我需要分析大量的log,大部分log的内容我并不熟悉,我用vim+ctags从log跳转到代码,代码跳转回log,或者两个vim buffer window一边代码一边log对照。如前我有很多份代码,跳转到哪一份呢?用linux我的vim可以在启动时从tmux获取环境变量得知当前应该工作在哪份代码上,自动加载相应的tags7. 我的linux desktop从不关机,需要的时候我可以从任一机器ssh上去,tmux attach到相应的session,继续上次中断的工作8. 常用的编译调试命令都写成shell 函数了,调用方便9. kernel代码和用户区代码缩进规则不同,配置.vimrc可以自动识别c代码是kernel还是user space然后加载不同的缩进规则10. 也许可以kgdb?还没有尝试…
与烂不烂什么的根本无关。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 环境「烂不烂」无关,而是「能不能」的问题。
说一下我吧:公司ubuntu 12.04,家里Linux Mint 15。大概有半年多没用过windows了,现在真心觉得做开发在类unix系统下更方便(除非你搞的是微软那一套技术) ,比如android源码开发就必须在linux或mac环境下进行,当然,如果有条件的话更推荐选择mac,因为linux下的应用软件非常少,而且很多软件安装起来也比较费事。mac与linux同属类unix系统,做开发也很方便,而且大牛们也很多都用mac,他们写的技术博客中的示例也很多都是在mac环境下编写的,再加上苹果一贯的风格,想做苹果开发必须在mac环境下,所以…
第一推荐mac os
第二linux(个人更喜欢linux mint)
===================================希望能够帮到你
如果真的是新手,只是想先学习一下Android应用开发,而且不考虑除了手机平板之外的其他设备,实话实说,不涉及ndk的部分(除了游戏和图像处理等大计算量代码,你一开始自己做的那些程序应该不会涉及),在win下用eclipse和AS还是很顺手的。
其实,用win下的ndk工具,大部分情况下编译一些native的代码也是很顺手的。但是,总是有那么一些奇葩的错误编不过去。。。不过我相信,如果你按部就班的话,碰到win下ndk死活编不过去的情况时,应该已经有一定的编程经验了。这个时候,再转Linux应该就没什么思维难题了(学习能力提高了,而且不得不用的时候,学起来比你一开始就来Linux要快的多)。
当然,如果题主已经对Ubuntu很熟悉,就当我没说,一上来就用Linux最好。只是我(卑鄙地)觉得,编程新手应该不会对Ubuntu很熟悉吧。。。
by 编程小弱
真心没觉得有那么多。如果抛开版权问题不谈,只是为了开发而开发的话,Windows下+cygwin并不会比纯Ubuntu慢,而且很多办公环境还是蛮依赖于WIndows的,最多也就是虚拟机比较多吧。至于AVD,楼主如果真的是新手的话,那你根本不知道什么叫慢。想当年……Android 1.5的时候,AVD打开要5分钟,是的你没看错哦,5分钟!而且这玩意在Windows下跟Linux速度差不多。而且最令人蛋碎如尘,细思恐极的是,如果你想加快它启动时间,可以在它初始化中,把鼠标指向它的屏幕,按下右键想象你在玩水果忍者,拼命的划,然后你会发现,启动速度居然加快了20%……最后我觉得ls几位答的不在点子上。我觉得卤煮的问题是……你居然真的用AVD去调试程序!?不得不说这简直令我难以想象……到底要多苦逼,才会忍受那种卡得跟乌龟一样的东西呢,放弃吧少年……如果你真的穷到连个安卓机都买不起,或者只是为了看个UI显示,那么就用调试吧。最后的最后……跪求大神们不要黑Java了……你们知道它有多努力吗!它只是个孩子呐!(咳咳……虽然我最近在自学Go和Rail的时候也略微鄙弃Java……)
以我自己的观察来看没有那么多,不过有大约对半分的系统使用率。
我是在windows下开发的,Android Studio非常好用,没感觉比linux差在了哪里。
AVD在哪里都慢,因此还是真机调试比较好。
不要轻易听信vczh大神的回答,当然是你真想开发Android的前提下。
个人觉得Android开发选择Ubuntu的原因大部分是因为要下载源码自己编译学习。如果只是开发完全不需要在Linux环境下。
另,macosx也可以搞源码开发,但是需要新建一个区分文件名大小写的分区,而且编译源码的时候很难一次成功,需要折腾攻略。。。
最后,Android的SDK自带模拟器慢很大一部分原因是因为要跨平台。Android 2.3(API Level 10)以后的基本都不怎么样,和你的机器配置关系不大,它只利用了一个核。。。
有很多第三方Android模拟器,大都利用Intel vt虚拟加virtualbox的方式,速度媲美真机。另,不推荐eclipse,用intellij免费版吧。==============================补充:赞同
的回答,NDK相关的开发体验Ubuntu秒杀Windows。另外,我觉得使用Ubuntu和Windows不同的地方就是……Github上有些开源工程本身就是建立在Linux环境中的,如果你在Windows环境下git下源码根本跑不起来,尼玛好多软链接啊~比如那个什么 AndroidMono……xamarin最大的问题是,它的Android方案听起来就不靠谱……封装 Android framework API的方式采用一比一实现,mono虚拟机中等价映射了一个dalvik中的对象,你用C# new 了一个对象,在两个虚拟机中各开辟了一份内存,而且二者还得彼此沟通建立联系……最关键的是GC时还有问题(这个是用过的人说的,没有亲自考证)。我觉得Android开发用C#没啥问题,但是不要企图使用什么一篮子方案解决,尤其是 UI 这一块儿……
ubuntu以及osx下的avd速度也不快,和操作系统没关系,升级你的机器吧
我还没见过写app的用linux,做系统内核二次开发的话你不用linux貌似都不行
avd在哪个系统都很慢……Linux和windows我两个都试过没有什么明显区别,既然是新手还是在windows下开发吧(当然Ubuntu也不难)。至于李楠么……我以为他会说安卓开发者都是用iPhone的……
@pansz的才是真正正确的答案,但对于初学者实在没必要为了做安卓而去使用Linux
已有帐号?
无法登录?
社交帐号登录推荐这篇日记的豆列
······下次自动登录
现在的位置:
& 综合 & 正文
cocos2d-x在mac下配置安卓开发环境
我们都知道cocos2d-x是一个跨平台的游戏引擎,但如果只用它来开发iPone/iPad端的游戏,有点太杀鸡用牛刀了,如果是那样的话,cocos2d-x就没有展现出它的优势了。那我就来介绍一下用cocos2d-x如何创建一个安卓平台,并且成功的将ios游戏项目转化成安卓游戏。
操作步骤:
在中断输入pico .bash_profile打开之后输入export ANDROID_SDK_ROOT=/Users/Himi/Documents/HimiWork/AndroidTools/android-sdk$export ANDROID_NDK_ROOT=/Users/Himi/Documents/HimiWork/AndroidTools/android-ndk$export COCOS2DX_ROOT=/Users/Himi/Documents/cocos2d-1.0.1-x-0.12.0export NDK_ROOT=/Users/Himi/Documents/HimiWork/AndroidTools/android-ndk-r7bexport PATH=$PATH:$ANDROID_SDK_ROOTexport PATH=$PATH:$ANDROID_NDK_ROOT然后按住Ctrl+X-&Y+回车结束路径配置
然后新建一个xcode项目,如果是新添加了类之后,必须确保所有的类文件都在class中,然后重新编译,确保项目能在iPhone模拟器中正常运行
接着是在终端运行cocos2d-x中的create-android-project.sh,新建项目,项目名称com.dxw.test,然后选择id2,接着文件名test。
然后将proj.android中的build_native.sh修改一下路径:将../../修改成../libs,接着将四个文件分别复制到自己的项目libs中,有的需要覆盖。最后看一下自己的项目中platform中最后java/libs是否包含好多java文件,如果没有的话,就自己从cocos2d-x中找到相应的文件然后复制就可以了
如果是自己额外创建的项目:
要修改jni下的mk文件:
将LOCAL_SRC_FILES:=hellocpp/main.cpp... , 将所有项目中cpp文件都添加进去
然后对proj.andorid进行清理,删除掉assert和obj文件删除,然后继续./build_native.sh进行编译
1.要修改cocos2dx项目中的AppDelegate.cpp,
applicationDidFinishLaunching的方法下面添加一行:CCEGLView::sharedOpenGLView()-&setDesignResolutionSize(320,480,
kResolutionUnKnown); //屏幕分辨率自适应
2.修改eclipse下的一个AndroidManifest.xml文件,因为他默认的是横屏的(LandScape),如果是纵屏的话要修改成竖屏(android:screenOrientation="portrait")显示。
将文件分别import到工程中,首先导入proj.android然后是libcocos2dx文件,最后插上手机进行运行!
&&&&推荐文章:
【上篇】【下篇】mac下配置NDK开发环境
本文参考了别人的文章,详细步骤:
一、启动终端Terminal
二、输入& pico .bash_profile& 回车。
三、输入以下内容【路径依实情而定】:
export ANDROID_SDK_ROOT=/Users/apple/Desktop/adt-bundle/sdk&
export ANDROID_NDK_ROOT=/Users/apple/Documents//android-ndk-r8e&
export PATH=$PATH:$ANDROID_SDK_ROOT&
export PATH=$PATH:$ANDROID_NDK_ROOT&
export ANDROID_TOOL=/Users/apple/Desktop/adt-bundle/sdk/platform-tools&
export PAHT=$PATH:$ANDROID_TOOL&
export ANDROID_SDK_ROOT=/Users/apple/Desktop/adt-bundle/sdk
export ANDROID_NDK_ROOT=/Users/apple/Documents/Android/android-ndk-r8e
export PATH=$PATH:$ANDROID_SDK_ROOT
export PATH=$PATH:$ANDROID_NDK_ROOT
export ANDROID_TOOL=/Users/apple/Desktop/adt-bundle/sdk/platform-tools
export PAHT=$PATH:$ANDROID_TOOL
四、 注意路径最好不要有空格!输入完成之后,Control+x& 进行保存,然后提示是否保存,输入 y& ,最后回车即可!
五、检验路径步骤:关闭你的&终端&,重新打开,如果之前路径配置有问题,那么重新打开的&终端&将出现如下提示:-bash: exoort: command not found&&& 如果没有此类提示,OK说明路径配置完成!
六、输入ndk-build,有反应说明配置路径成功。
七、cd 到要编译的项目内,ndk-build,编译成功。OK,搞定之。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

我要回帖

更多关于 mac java开发环境搭建 的文章

 

随机推荐