Do you have great ideas about android* apps without knowing how to do it with the programming tools and languages available? This article will introduce you to the main programming languages available for Android development.
The most commonly used programming languages are Java, C #, C + +, and HTML5. Each language has its own history of development, use, and pros and cons. Let's describe how they work, the applicable framework, and the IDE.
Java
Java was first unveiled in 1995 as an Internet application language. But now it's used in a number of different development areas, including gaming, navigation, enterprise solutions, and the mobile industry.
Java is a classic Android development language. In essence, Java is an explanatory language. This feature makes it a cross-platform language: Java Virtual machines are essential to run Java code. In the Android case, ART or dalvik* (in kitkat* or previous versions of Android) assume the role of the virtual machine. But ART uses a completely different approach: it compiles Java Dex bytecode in the application installation phase and translates it into an executable file for target devices. The main features of ART and the compiler principles different from dalvik* are described in detail here.
Google offers a powerful Java infrastructure: The Android SDK has a rich Java API. You can download only the SDK tool or Android studio-based on Intellij* Idea's official Android IDE, including Android SDK tools, platforms and emulators. It can be installed on Windows *, Mac OS x* and Linux *. The SDK 6.0 marshmallow with new features and technology is now available!
If you prefer to use some common, common tools, you can get an Android development tool (ADT) and integrate it into the eclipse* IDE.
In addition to the SDK and IDE, you can use many frameworks that are useful to developers, such as box2d*, libgdx*, and basic4android*.
C#
C # is an object-oriented, alternative Java programming language developed by Microsoft. It is related to the. NET framework, which is a Windows * component that contains the common language runtime (CLR) required to run C # code and class libraries.
In the Android case, mono* is the. NET role in Windows. Mono is an open source project that Xamarin supports for the ECMA standard for C # and the CLR.
Mono consists of four parts: the C # compiler, the Mono runtime, the Base class library, and the Mono class library (classes for gtk+*, zip* files, ldap*, opengl*, cairo*, posix*, and so on).
Xamarin also offers a variety of tools for mobile developers: Xamarin Platform: Support for building cross-platform C # applications using native interfaces, Xamarin Test Cloud: Supports measurement (you don't have) the effectiveness of real-world devices, Xamarin Insights: Supports real-time monitoring of how users interact with apps, Xamarin University: Offers online and offline courses for learning mobile development. The Xamarin framework is easy to integrate with Microsoft Visual studio*.
The following frameworks apply to C # programming: unity*, monocross*, and cocos2d-xna*.
C++
C + + is one of the most powerful languages in the world. You can use it to write countless software: Adobe photoshop*, illustrator*, Windows os*, and other Microsoft products, such as office*, Visual Studio, Internet explorer* , as well as Mozilla firefox* and some OS X systems.
The development of C/D + + Android in the past represents a way to build native applications. Native means that the compiler translates program code into hardware-specific binary code. So native code must be built for each specific device. This is very difficult, but these types of applications are known for their fastest speed. Also, native apps have direct access to the address book and other features of the camera, GPS, or operating system and device.
Native app Development has its own unique strengths and weaknesses, so you must understand the app you're about to create. Is it a 3D game, a simple notebook app, or an app for taxi calls? If your application requires dense CPU or GPU computing, C + + encoding may be the best choice. But the most important thing is to keep it simple without creating unnecessary complexity.
If you are sure that development with native features can improve performance, you will need to use the native Development Kit (NDK).
However, there are fewer and fewer completely native Android apps. They are usually written in a subset of other languages. Therefore, Java provides Java Native Interface (JNI), which invokes the native functionality of the Java Virtual machine.
The ultimate goal of many game engines or other frameworks is to simplify C/+ + Android development. These include: unity*, Unreal engine*, Project anarchy*, marmalade*, cocos2d-x*.
Intel offers two tools for optimizing and improving the performance of Android native applications: intel® Graphics Performance Analyzer (intel® ®gpa) and intel® vtune™ amplifier for Android. Intel® ®gpa is made up of three parts: System Analyzer, Platform Analyzer, and Frame Analyzer to help you detect and solve challenges in GPU-intensive applications. Here is the detailed information about each parser. For CPU-intensive applications, Intel VTune amplifiers play an irreplaceable role in locating and repairing hotspots and bottlenecks. See the tutorial for more information.
HTML5
HTML5 is a markup language standard for organizing and demonstrating WEB content. HTML5 tags are commonly used in conjunction with other key Web tools: The Javascript* programming language and the CSS3 (cascading style sheet). This combination helps you create extremely complex WEB applications.
But the World Wide Web is not the only place where HTML5 is available. Currently, it is widely used for mobile development designed to create hybrid applications. So if you're an experienced WEB programmer who wants to develop Android apps, there's no need to learn a whole new language at all.
What is a "hybrid application"? There is a classification method that divides all applications into three categories: native, web, and hybrid applications, where hybrid applications incorporate Web features and native UI elements. On the one hand, hybrid apps run by WebView (an extension of the Android View class that allows you to insert pages into your Android app). It supports the hardware capabilities required to apply the connection. On the other hand, you can't visually see the difference between a hybrid app and a native app!
Many engines or SDKs are centered on the HTML5 standard, including: Marmalade Web, Unreal engine, Cocos2d-js, cordova*, and so on.
To create a hybrid Android app cost-effectively, try the intel® ®XDK, a development environment that provides the tools you need for each development phase, from design to sharing to the store. It contains an intuitive GUI layout editor called "App Designer" and a built-in code editor that accelerates the development process. Enjoy the application testing process with field development tasks. For more information on these editors and other Intel XDK features, please read the Getting Started guide.
Intel ®XDK has a special service for 2D game development. Game asset Manager helps you easily access, manage, and control your game assets. It also includes many framework support as well as Apache Cordova plugins and APIs. To start experimenting with Intel XDK game development, check out the introduction to HTML5 game development.
Conclusion
This article briefly describes the most widely used programming languages and their status in the Android field. The point is that you need to be clear about applying concepts before you can find the right programming language. You need to ask yourself: what kind of application will it be? If it's a simple calculator, you can choose Classic Java, C #, or modern HTML5. But if you're going to publish a graphics-rich 3D game product, you can try native features of C + + or C #.
Resources
- Android Developer
- Oracle Java
- C + + Standard
- C # Language Specification
- HTML5-World Wide Web Consortium
About the author
Anna Belova is a software engineering intern at Intel Corporation's SW and Services division. She holds a bachelor's degree in Business information Science and is currently pursuing a master's degree in Applied Mathematics and information Science from the College of Higher Economics, national Research University of Russia. Anna is interested in mobile and wearable technology.
Http://blog.ifeng.com/article/44923317.html
Http://blog.sina.com.cn/s/blog_7362e71e0102wh9a.html
Http://blog.sina.com.cn/s/blog_7362e71e0102wh9b.html
Http://blog.sina.com.cn/s/blog_7362e71e0102wh9c.html
Http://blog.sina.com.cn/s/blog_7362e71e0102wh9d.html
Http://blog.ifeng.com/article/44923586.html
Http://blog.sina.com.cn/s/blog_7362e71e0102wh9e.html
Http://blog.ifeng.com/article/44923694.html
Http://site.leshou.com/s/27164255.html
Http://site.leshou.com/s/27164386.html
Http://site.leshou.com/s/27164448.html
Http://site.leshou.com/s/27164509.html
Http://site.leshou.com/s/27164638.html
Http://site.leshou.com/s/27164721.html
Http://site.leshou.com/s/27164815.html
Http://site.leshou.com/s/27164880.html
Http://site.leshou.com/s/27164958.html
Http://site.leshou.com/s/27165049.html
Http://site.leshou.com/s/27165147.html
Http://site.leshou.com/s/27165236.html
Http://site.leshou.com/s/27165340.html
Http://site.leshou.com/s/27165377.html
Http://site.leshou.com/s/27165436.html
Http://site.leshou.com/s/27165484.html
Http://site.leshou.com/s/27165520.html
Http://site.leshou.com/s/27165602.html
Http://site.leshou.com/s/27165768.html
Http://site.leshou.com/s/27165808.html
Http://site.leshou.com/s/27165859.html
Http://site.leshou.com/s/27165920.html
Http://site.leshou.com/s/27165966.html
Http://site.leshou.com/s/27166010.html
Http://shiyou.huangye88.com/xinxi/81909588.html
Http://shiyou.huangye88.com/xinxi/81910448.html
Http://shiyou.huangye88.com/xinxi/81910742.html
Http://shiyou.huangye88.com/xinxi/81911246.html
Http://shiyou.huangye88.com/xinxi/81911602.html
Http://shiyou.huangye88.com/xinxi/81911602.html
Http://shiyou.huangye88.com/xinxi/81912242.html
Http://shiyou.huangye88.com/xinxi/81912555.html
Http://shiyou.huangye88.com/xinxi/81912906.html
Http://shiyou.huangye88.com/xinxi/81913241.html
Http://shiyou.huangye88.com/xinxi/81913523.html
Http://shiyou.huangye88.com/xinxi/81913780.html
Http://shiyou.huangye88.com/xinxi/81914093.html
Http://shiyou.huangye88.com/xinxi/81914461.html
Http://shiyou.huangye88.com/xinxi/81914739.html
Http://www.99inf.com/jinrong/qhqq/762445.html
Http://www.99inf.com/jinrong/yhbx/762439.html
Http://www.99inf.com/jinrong/qhqq/762436.html
Http://www.99inf.com/jinrong/qhqq/762429.html
Http://www.99inf.com/jinrong/qhqq/762426.html
Http://www.99inf.com/jinrong/qhqq/762423.html
Http://www.99inf.com/jinrong/qhqq/762418.html
Http://www.99inf.com/jinrong/gpzq/762415.html
Http://www.99inf.com/jinrong/gpzq/762407.html
Http://www.99inf.com/jinrong/yhbx/762405.html
Http://www.99inf.com/jinrong/gpzq/762403.html
Http://www.99inf.com/jinrong/qhqq/762400.html
Http://www.99inf.com/jinrong/qhqq/762391.html
Http://www.99inf.com/jinrong/yhbx/762381.html
Http://blog.ifeng.com/article/44925556.html
Http://blog.ifeng.com/article/44925767.html
Http://www.360yue.cn/news/show-83472.html
Http://www.360yue.cn/news/show-83473.html
Http://www.360yue.cn/news/show-83474.html
Http://www.360yue.cn/news/show-83475.html
Http://www.360yue.cn/news/show-83476.html
Http://www.360yue.cn/news/show-83477.html
Http://www.360yue.cn/news/show-83478.html
Http://www.360yue.cn/news/show-83480.html
Http://www.360yue.cn/news/show-83482.html
Http://www.cnblogs.com/biyinjishi/p/5553238.html
Which programming language should I choose? (java*, C #, C + +, or HTML5)