android开发c
① 关于 Android c语言 开发
刚好最近我正在学习android可以帮到你。
1.java开发是Android的应用部分
2.C/C++语言开发是Android核心的部分
Android的C语言其实是指的Android底层的Linux内核开发,刚好你是学习Linux C语言的这样就有用武之地。Android的底层是由Linux开发的,并建立在Linux之上的JAVA虚拟机来实现的。
所以要学习Android C语言的开发,建议看看《Android系统原理及开发要点详解》着本书讲的内容都是底层的内容,一定要买。不过JAVA语言的部分也一定要看,因为C语言做的驱动最后还是需要被JAVA虚拟机调用。
另外要做AndroidC语言开发还需要注意一下几点:
1.需要购买开发板来学习,或者开源的手机,这样可以直观的了解驱动的运作模式和有效调试
2.需要下载android源代码,因为Android SDK开发是不会用到C语言的
3.android的NDK开发其实也是C/C++语言调用一些函数来实现,建议也看
4.最后这个网址可以去看,多是讲底层资料的:http://bbs.starandroid.com/showtopic.aspx?topicid=10712&page=end
建议:
1.JAVA还是要看的
2.建议往Android底层硬件开发走
② 为什么Android开发使用Java而不是C++
一、C++是与cpu相关的本地代码,也就是说每种机型都要提供相应的编译器,而且每个应用都要分别编译成适应不同机型的版本 而Java只要开发商提供针对特定硬件平台的JVM,你的应用程序代码只需一次编译就可以运行在所有android机上了。所以对于android这样的系统,必然要以Java为程序语言的,否则结果是无法想象的。
二、Java跨平台,入门简单,而学习和精通C++的成本实在比JAVA要高太多了。java拥有世界上最大的开发群体,有最大的开源社区的技术支持,这样它就可以吸引最大量的开发者团队或者公司,提供更多更强优质的产品,而优质的产品和人气,是吸引最终用户的法宝。 其实这也就体现了,为什么开源软件是软件产业的一次革命了。
三、Google采用Java虚拟机的另一个很关键的原因,就是能使手机开发厂商摆脱Linux的GPL协议的束缚;Google通过Java虚拟机在Linux 内核和应用层之间做了隔离,因此,开源的只是内核和Java虚拟机,而厂商采用Java编写的驱动和应用则不需要开源,这样,既维护了各厂商的利益,又保证了各种android应用在各款手机的跨平台应用。
四、说Java效率低下的朋友一定没有深入理解过JVM的实现。现在的嵌入式CPU大多都集成了Java协处理,支持JVM指令集,能直接运行微码,不再是以前的“解释执行了”,效率上已经非常接近于C。Android的GUI框架是基于Native C底层的一套自有框架,基本上所有视频加速功能都是由C/C++实现,GUI效率一点不打折扣。
③ android开发用eclipse怎么调用c代码
在一些Android应用的开发中,需要通过JNI和 Android NDK工具实现JAVA和C/C++之间的相互调用。
Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI是本地编程接口,它使得在 Java 虚拟机 (VM)内部运行的 Java代码能够与用其它编程语言(如 C、C++和汇编语言)编写的应用程序和库进行交互操作。
由于Android的应用层的类都是以Java写的,这些Java类编译为Dex型式的Bytecode之后,必须靠Dalvik虚拟机(VM: Virtual Machine)来执行。在执行Java类的过程中,如果Java类需要与C组件沟通时,VM就会去载入C组件,然后让Java的函数顺利地调用到C组件的函数。此时,VM扮演着桥梁的角色,让Java与C组件能通过标准的JNI接口而相互沟通。
在实际应用中这两者之间的调用关系可以归纳为以下四种方式:
1. 在应用的JAVA代码中调用NDK中C/C++实现的函数。
2. 在NDK开发中的C/C++代码调用应用中JAVA类的静态函数。
3. 在NDK开发中的C/C++代码调用应用中JAVA类当前传入NDK中的实例的函数。
4. 在NDK开发中的C/C++代码调用应用中JAVA类新建实例的函数。
④ 做安卓APP开发,为什么还要学C语言
学习C语言可以为学习C++、Java、C#奠定基础。C++、Java、C# 都源自C语言,C语言大部分的语法、知识都被移植到 C++、Java 和 C# 中了。
所以学习C语言有助于 C++、Java 和 C# 的学习。对于学习编程的人来说,有深厚的C语言功底是极其重要的。
只要C语言的功底深厚,那么学习其他语言都会很简单。但深厚的功底不是一天两天造就的,需要长时间的积累和沉淀。
(4)android开发c扩展阅读
简介
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
特有特点
1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3、不同的变量类型可以用结构体(struct)组合在一起。
4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
⑤ 安卓开发需要什么需要c语言和java语言,用哪个
安卓开发需要Java语言。
android是基于java开发的。可以说开发人员的Java水平将直接决定其Android水平。
因为Android的应用的开发语言用的是Java语言,并且在Android中也用到了Java核心类库的大量的类,因此,在学习Android开发之前,可以先把Java基本语法和Java SE的基础类库好好学习一下Android应用序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。
现阶段从事Android开发的人员主要包括两类人群,一类是Java开发人员通过自学转型到Android领域;另一类则是通过在一些Android培训机构进行一段时间的集中培训而进入Android领域。
⑥ 基于android平台开发上用C语言可以开发什么程序
android上现在有两个方向,一个是基于SDK的开发,主要是
用JAVA,另外一个就是NDK的开发,主要语言就是C、C++,C,C++可以再在android中做第三方的开发,人才急缺,主要是将一些功能本地化。
⑦ 基于android平台开发上用C语言可以开发什么程序
android上现在有两个方向,一个是基于SDK的开发,主要是 用JAVA,另外一个就是NDK的开发,主要语言就是C、C++,C,C++可以再在android中做第三方的开发,人才急缺,主要是将一些功能本地化。
⑧ android是否能用c/c++开发完整应用程序
不能开发完整的程序,但你可以把逻辑算法封装在c/c++开发的.so库文件中,然后在java层使用jni进行调用。
要使用c/c++需要安装eclipse+cdt+ndk
但你仍然需要java开发环境eclipse+adt+sdk
⑨ Android能用纯C/C++开发吗
目前截止到2.3系统来看,最终安装的文件仍然是apk格式,界面和系统大多数功能均使用Java开发,但是稍微高端的应用考虑到性能和安全性使用
C/C++是必要的,C/C++最终编译的so文件就相当于Windows下的dll动态库,需要一个宿主去加载调用,我们通过Java的JNI去调用这些本地方法,目前从NDK的版本来看Google不断增强和开放C++在Android开发的用处,以保证和iPhone这种使用本地语言开发出来的软件体验度不能差距太大。
⑩ Android中可以用C直接开发吗不用JAVA,JNI也不行,不想被反编译
可以的,底层原本就是C的,可以直接跨过JAVA层,但是挺麻烦
可以不用JNI,直接从动态连接库启动,但是NDK还是要用的,编译方便