Ⅰ 安卓app主要用什么编程语言的
安卓App用java和Kotlin作为开发语言。
Google IO 2017宣布了 Kotlin 会成为 android 官方开发语言。在Kotlin 语言出现之前,几乎所有的安卓应用程序都是使用Java语言编写的。
(1)安卓的编译环境是什么扩展阅读
Google在今年I/O2017开发者大会中宣布,正式把Kotlin纳入Android程序的一级开发语言(First-classlanguage),并与开发团队JetBrains合组非牟利基金会推广Kotlin。据多间外国媒体报导,这是GoogleI/O开发者大会中引来最多欢呼声的消息。
Kotlin将于AndroidStudio3.0得到支持,JetBrians指开发者不用再安装额外元件或担心兼容问题。Kotlin能与Java互通,但拥有Java不支持的功能。Google相信利用Kotlin可使Android程序开发更快捷有趣,但他们补充,此举绝非取代Java和C++的官方支持。
Ⅱ 编译android 源码需要sdk环境吗
下面是android学习手册,可以查看编译源码,360手机助手中下载,
编译环境:ubuntu9.10,widnows平台目前不被支持。
1)安装必要的软件环境
$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
官方推荐的就是上面这些,如果在编译过程中发现某些命令找不到,就apt-get它。可能需要的包还有:
$ sudo apt-get install make
$ sudo apt-get install gcc
$ sudo apt-get install g++
$ sudo apt-get install libc6-dev
$ sudo apt-get install patch
$ sudo apt-get install texinfo
$ sudo apt-get install zlib1g-dev
$ sudo apt-get install valgrind
$ sudo apt-get install python2.5(或者更高版本)
需要注意的是,官方文档说如果用sun-java6-jdk可出问题,得要用sun-java5- jdk。经测试发现,如果仅仅make(make不包括make sdk),用sun-java6-jdk是没有问题的。而make sdk,就会有问题,严格来说是在make doc出问题,它需要的javadoc版本为1.5。
因此,我们安装完sun-java6-jdk后最好再安装sun-java5-jdk,或者只安装sun-java5-jdk。这里sun-java6-jdk和sun-java5-jdk都安装,并只修改javadoc.1.gz和javadoc。因为只有这两个是make sdk用到的。这样的话,除了javadoc工具是用1.5版本,其它均用1.6版本:
$ sudo apt-get install sun-java6-jdk
修改javadoc的link:
$ cd /etc/alternatives
$ sudo rm javadoc.1.gz
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
$ sudo rm javadoc
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc
2)设置环境变量
$ emacs ~/.bashrc
在.bashrc中新增或整合PATH变量,如下:
#java 程序开发/运行的一些环境变量
JAVA_HOME=/usr/lib/jvm/java-6-sun
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};
保存后,同步更新:
source ~/.bashrc
3)安装repo(用来更新android源码)
创建~/bin目录,用来存放repo程序,如下:
$ cd ~
$ mkdir bin
并加到环境变量PATH中,在第2步中已经加入。
下载repo脚本并使其可执行:
$ curlhttp://android.git.kernel.org/repo>~/bin/repo
$ chmod a+x ~/bin/repo
4)初始化repo
repo是android对git的一个封装,简化了一些git的操作。
创建工程目录:
$ mkdir android
$ cd android
repo初始化:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
在此过程中需要输入名字和email地址。初始化成功后,会显示:
repo initialized in /android
在~/android下会有一个.repo的隐藏目录。
5)同步源代码
$ repo sync
这一步要很久很久。
6)编译android源码,并得到~/android/out目录
$ cd ~/andoird
$ make
这一过程很久。
7)在模拟器上运行编译好的android
编译好android之后,emulator在~/android/out/host/linux-x86/bin下,ramdisk.img,system.img和userdata.img则在~/android/out/target/proct/generic下。
$ cd ~/android/out/host/linux-x86/bin
增加环境变量
$ emacs ~/.bashrc
在.bashrc中新增环境变量,如下
#java 程序开发/运行的一些环境变量
export ANDROID_PRODUCT_OUT=~/android/out/target/proct/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};
最后,同步这些变化:
$ source ~/.bashrc
$ cd ~/android/out/target/proct/generic
$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img
最后进入android桌面,就说明成功了。
8)编译模块
android中的一个应用程序可以单独编译,编译后要重新生成system.img。
在源码目录下执行
$ . build/envsetup.sh (.后面有空格)
就多出一些命令:
- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.
可以加—help查看用法。
我们可以使用mmm来编译指定目录的模块,如编译联系人:
$ mmm packages/apps/Contacts/
编完之后生成两个文件:
out/target/proct/generic/data/app/ContactsTests.apk
out/target/proct/generic/system/app/Contacts.apk
可以使用
$ make snod
重新生成system.img,再运行模拟器。
9)编译SDK
直接执行make是不包括make sdk的。make sdk用来生成SDK,这样,我们就可以用与源码同步的SDK来开发android了。
a)修改/frameworks/base/include/utils/Asset.h
‘UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024’ 改为 ‘UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024’
原因是eclipse编译工程需要大于1.3M的buffer;
b)编译ADT
由于本人不使用eclipse,所以没有进行这步;
c)执行make sdk
注意,这里需要的javadoc版本为1.5,所以你需要在步骤1中同时安装sun-java5-jdk
$ make sdk
编译很慢。编译后生成的SDK存放在out/host/linux-x86/sdk/,此目录下有android-sdk_eng.xxx_linux- x86.zip和android-sdk_eng.xxx_linux-x86目录。android-sdk_eng.xxx_linux-x86就是 SDK目录。
实际上,当用mmm命令编译模块时,一样会把SDK的输出文件清除,因此,最好把android-sdk_eng.xxx_linux-x86移出来。
此后的应用开发,就在该SDK上进行,所以把7)对于~/.bashrc的修改注释掉,增加如下一行:
export PATH=${PATH}:~/android/out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86/tools
注意要把xxx换成真实的路径;
d)关于环境变量、android工具的选择
目前的android工具有:
A、我们从网上下载的Android SDK,如果你下载过的话( tools下有许多android工具,lib/images下有img映像)
B、我们用make sdk编译出来的SDK( tools下也有许多android工具,lib/images下有img映像)
C、我们用make编译出来的out目录( tools下也有许多android工具,lib/images下有img映像)
那么我们应该用那些工具和img呢?
首先,我们一般不会用A选项的工具和img,因为一般来说它比较旧,也源码不同步。其次,也不会用C选项的工具和img,因为这些工具和img没有经过SDK的归类处理,会有工具和配置找不到的情况;事实上,make sdk产生的很多工具和img,在make编译出来out目录的时候,已经编译产生了,make sdk只是做了而已。
e)安装、配置ADT
略过;
f)创建Android Virtual Device
编译出来的SDK是没有AVD(Android Virtual Device)的,我们可以通过android工具查看:
$ android list
创建AVD:
$ android create avd -t 1 -n myavd
可以android –help来查看上面命令选项的用法。创建中有一些选项,默认就行了。
再执行android list,可以看到AVD存放的位置。
以后每次运行emulator都要加-avd myavd或@myavd选项:
$ emulator -avd myavd
10)编译linux内核映像
a)准备交叉编译工具链
android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。
b)设定环境变量
$ emacs ~/.bashrc
增加如下两行:
export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
export ARCH=arm
保存后,同步变化:
$ source ~/.bashrc
c)获得合适的内核源代码
$ cd ~/android
获得内核源代码仓库
$ git clone git://android.git.kernel.org/kernel/common.git kernel
$ cd kernel
$ git branch
显示
* android-2.6.27
说明你现在在android-2.6.27这个分支上,也是kernel/common.git的默认主分支。
显示所有head分支:
$ git branch -a
显示
* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29
我们选取最新的android-goldfish-2.6.29,其中goldfish是android的模拟器模拟的CPU。
$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch
显示
android-2.6.27
* android-goldfish-2.6.29
我们已经工作在android-goldfish-2.6.29分支上了。
d)设定交叉编译参数
打开kernel目录下的Makefile文件,把CROSS_COMPILE指向刚才下载的prebuilt中的arm-eabi编译器.
CROSS_COMPILE ?= arm-eabi-
把
LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,
$(call ld-option, -Wl$(comma)–build-id,))
这一行注释掉,并且添加一个空的LDFLAGS_BUILD_ID定义,如下:
LDFLAGS_BUILD_ID =
e)编译内核映像
$ cd ~/android/kernel
$ make goldfish_defconfig
$ make
f)测试生成的内核映像
$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage
Ⅲ 什么是编译环境他的作用是什么编译环境跟运行平台有什么不同
编译环境是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。作用是通过代入预定义等程序段将源程序补充完整。
编译环境跟运行平台区别为:工具不同、调试不同、硬件支持不同。
一、工具不同
1、编译环境:编译环境包含开发、调试和部署等工具。
2、运行平台:运行平台只包含运行指令和class实现的工具。
二、调试不同
1、编译环境:编译环境有调试代码的功能,调试后可重新编译执行。
2、运行平台:运行平台没有调试代码的功能。
三、硬件支持不同
1、编译环境:编译环境使用的是模拟设备,不需要硬件支持。
2、运行平台:运行平台需要硬件支持,在实际设备中运行。
Ⅳ Android杂谈:编译环境参数是从哪里来的
我们通过走一下编译步骤,看一下,这些参数的来源吧!
上面这句命令,是编译前准备环境的。
/ build / envsetup.sh
可以看到到引进了一堆的函数,有mm,mmm等常用指令
看看跑了啥逻辑,
1.首先判断了下shell的环境,最好使用/bin/bash。
参考: https://www.douban.com/note/404726254/
2.包含厂商vendor目录的vendorsetup.sh
包含后,echo打印出来,岩喊像下面这样子~
lunch就是选择一些编译参数,估计就是在这里准备好这些全局的参数的。
lunch函数在envsetup.sh里面定义
set_stuff_for_environment
会进入set_stuff_for_environment,主要是设置title,java环境,paths还有序列号。貌似没多大用处~
printconfig
最后会进入printconfig,就是打印配置信息给我们看啦!
打印一些配置,可以看到TARGET_PRODUCT,TARGET_BUILD_VARIANT和TARGET_BUILD_TYPE。
printconfig包含get_build_var函数,函数执行了一句make指令,make --no-print-directory -C "$T" -f build/core/config.mk mpvar-$1
(1)make -C "$T" 就是跳转到top目大枣蚂录。
(2)make -f 来指定makefile文件build/core/config.mk,我去config.mk还是个makefile文件。
(3)mpvary用来打印用的,就是打印第一个参数$1啦,呵呵呵
所以,主要get_build_var主要是执行makefile config.mk。
看看/ build / core / config.mk ,可以看到他进一步包含了envsetup.mk
envsetup.mk就是最后设置一些常用编译环境参数的文件了!!
/ build / core / envsetup.mk
看下面的图,可以看到他定义了很多编译常量了!!
1.通过source envsetup.sh可以引进很多函数,包含vendorsetup.sh
2.通过lunch,选择类型后,会编译build/core/config.mk文件,进而再编译envsetup.mk文件,而这个文滚埋件就是定义编译常量的地方!
Ⅳ Android sdk 、adt-eclipse 、android-ide 这三者是什么意思
Android sdk :android的开发工具包,里面有开发需要的工具和库类
adt-eclipse : adt是一个eclipse插件,用来开发android的
android-ide :就是android的集成开发工具,比如eclipse
Ⅵ 安卓系统是用什么语言编的
安卓系统的编程语言,C/C++(底层) Java等(应用层)。
1、Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能坦郑手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。
2、尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。
(6)安卓的编译环境是什么扩展阅读:
1、Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接执行安装,和Windows Mobile中的PE文件有区别。
2、这样做对于程序的保密性和可靠性不是很高,通过dexmp命令可启信激以反编译,但这样做符合发展规律,微软的 Windows Gadgets或者说WPF也采用了这种构架方式。
3、悄袜在Android平台中dalvik vm的执行文件被打包为apk格式,最终运行时加载器会解压然后获取编译后androidmanifest.xml文件中的permission分支相关的安全访问,但仍然存在很多安全限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。
4、最终我们平时安装的文件可能不是这个文件夹,而在android rom中系统的apk文件默认会放入这个文件夹,它们拥有着root权限。
Ⅶ 安卓app主要用什么编程语言的
安卓Android系统版本,开发语言是Java;
其他系统开发使用语言:
1、苹果ios系统版本,开发语言是Objective-C;
2、微软Windows phone系统版本,开发语言是C#;
3、塞班symbian系统版本,开发语言是C++。
App开发,是指专注于手机应用软件开发与服务。App是application的缩写,通常专指手机上的应用软件,或称手机客户端。另外目前有很多在线app开发平台。
当然移动互联网时代是全民的移动互联网时代,是每个人的时代,也是每个企业的时代。APP便捷了每个人的生活,APP开发让每个企业都开始了移动信息化进程。
(7)安卓的编译环境是什么扩展阅读:
APP开发工具
MOTODEV Studio for Android
MOTODEV Studio for Android,这是基于Android的开发环境,为开发者们提供新的MOTODEV App Accelerator Program使他们可以开发出更适合摩托罗拉Android手机的应用程序。
J2ME开发插件 Mobile Tools for Java
Mobile Tools for Java (MTJ) 是Nokia公司开发的一款 Eclipse插件,用于支持 Java 手机应用程序开发。其前身就是大名鼎鼎的 EclipseME。
NOKIA手机开发包 gnokii
gnokii 是一个NOKIA手机开发包,可支持大多数NOKIA手机的型号。功能无比强大可以修改LOGO,收发短信,拨打/接听电话,编辑铃声。甚至还可以取到对方手机的蜂窝号(Cell ID),从而起到定位的作用。
apk文件修改工具 Root Tools
RootTools是一个新的工具软件,Android开发者可以在这一工具软件的支持下,对.apk格式的文件进行再次修改,让程序表现更加出色,满足用户的需求。Root Tools里面自带有很多工具,比如BusyBox,它里面集成压缩了很多Linux的工具和命令,这样软件开发者在对....
IDEA的Android开发插件 idea-android
idea-android 是在 IDEA 集成开发环境中开发 Android 应用程序的插件。
Android开发工具 MOTODEV Studio
MOTODEV Studio是摩托罗拉公司开发的 Android 应用开发工具。这是一个 Eclipse 的插件。 该插件同时也提供了 JavaME 应用的开发和 WebUI 的开发功能。
参考资料:网络---app开发
Ⅷ android apk 反编译需要什么环境
有jdk环境就可以然雹肢后下载一个 ApkDec-Release-0.1 一键android反编译工具、快速反返肆册编译试试吧漏宏、记得给分哦
Ⅸ 为什么Google官方推荐编译Android环境是ubuntu,而不是debian
google自己用ubuntu开发的多吧,ubuntu是商业公司册槐皮,支持比较好就是了,debian那是社区,爱做不做州差的有明纯些,现在和阀门厂挂钩了,感觉好很多
Ⅹ 我想在安卓手机上编编程,有什么软件可用
NO.1c4droid一款手机上的c语橘巧言编译器。个镇友人认为手机上最好用的,没有之一!c4droid是款Android设备上的C/C++程序编译器。
NO.2AIDE功能强大,内置学习教程。
AIDE是一个AndroidJava集成开发环境,可以让你在Android系统内进行Android软件和游戏的开发。
NO.3我的应用iapp专为手机研发,代码编写简单,学习容易。iapp还很年轻,特别需要大家的支持!NO.4cppdroid和c4droid一样,是一款手机上的c语言编译器。安卓上的C/C++编译环境,可以帮助你在手机上编写c/c++程序,和c4droid各有优点,cppdroid最大的优点就是可以即时报错,写一个字符就检查一遍,保证程序的正确性,而且御伍槐编译速度快,虽然还有部分地方赶不上c4droid,但是和c4droid搭配还是不错的。