首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 687 毫秒
1.
Android是基于Linux的移动操作系统,主要使用于智能手机和平板电脑等移动设备,它采用的是分层架构框架,包括:应用程序层、应用程序框架层、系统运行库层、Linux内核层,其中应用程序层是使用Java语言编写的.以Eclipse为开发环境,在Android-sdk-4.2.2和Android-ndk-r10基础上实现了Java和C++的混合编程,用Java实现应用程序UI操作部分,用C++实现图像处理、算法等运算量大的部分,这样整个应用程序的执行效率就会得到改善和提高.  相似文献   

2.
Dalvik虚拟机作为Android系统上运行所有应用程序的基础,其性能瓶颈一直制约着Android系统的用户体验。通过研究Android系统中的Dalvik架构,分析其解释器和JIT模块的工作原理,发现热Trace选择过程中短Trace编译损耗大以及即时编译过程中寄存器分配不合理的情况。结合Java虚拟机技术和编译器技术,在现有热Trace选择和寄存器分配机制的基础上,提出基于Trace合并和寄存器分配的优化算法,在国产高性能嵌入式CPU CSKY体系下移植Dalvik虚拟机并实现了上述优化算法。通过实验证明优化后Dalvik执行Java程序的性能提高了近10%。  相似文献   

3.
OSGi(Open Service Gateway Initiative)服务平台规范定义了一个开放的一般性架构,为网络服务、软件的开发和部署提供一致性的协作环境,其核心是提供一个通用、安全并且可管理的Java框架.OSGi规范本身利用了Java语言的特性,非常适合用Java实现.但其Java实现对系统资源的消耗较大并且运行时依赖Java虚拟机环境(JVM),不适合在系统资源较少和未安装JVM的环境中使用,例如移动设备.本文在分析OSGi框架原理的基础上,提出了一种轻量级的Windows平台下基于C++的OSGi框架实现方案--cwinOSGi,重点解决了组件的打包方式、加载方法、组件间的可见性及动态更新等关键技术问题,实现了OSGi模型的主要功能.实验证明,与OSGi框架的Java实现相比,cwinOSGi的系统资源需求大幅降低,具有更广的适应性.  相似文献   

4.
Java本地接口JNI原理及通过JNI实现Java与C/C++互操作的途径和实现方法.  相似文献   

5.
Java的出现几乎可以算作是近20年编程语言发展史上的一个标志性事件。虽然从语言本身的角度讲,Java不过是Smalltalk和C++语言结合的产物。但正是有了这种结合,有了JVM,Java找到了一个新的平衡:既比C/C++的开发效率高,同时又比Smalltalk更加讲究执行效率。此外JVM还是一个开放的虚拟机平台,可以在上面诞生更具灵活性,开发效率  相似文献   

6.
Android手机操作系统是Google于2008年推出的智能手机操作系统,它的所有应用都是基于Java语言的,它的类Java虚拟机Dalvik提供了所有应用的运行时环境。Dalvik是一个面向Linux作为嵌入式操作系统设计的虚拟机,尤其是它的面向进程的设计,充分利用了Linux进程管理的特点。介绍了Dalvik所依赖的基础,即Linux操作系统内核中进程管理的一些特性和传统Java程序对进程的控制;进而论述了Dalvik的进程模型的特点,从API和本地代码两个层面具体阐述了进程运行、创建和之间通信的部分细节。文中旨在为Dalvik的研究和应用提供参考。  相似文献   

7.
Dalvik虚拟机进程模型分析   总被引:1,自引:0,他引:1  
Android手机操作系统是Google于2008年推出的智能手机操作系统,它的所有应用都是基于Java语言的,它的类Java虚拟机Dalvik提供了所有应用的运行时环境。Dalvik是一个面向Linux作为嵌入式操作系统设计的虚拟机,尤其是它的面向进程的设计,充分利用了Linux进程管理的特点。介绍了Dalvik所依赖的基础,即Linux操作系统内核中进程管理的一些特性和传统Java程序对进程的控制;进而论述了Dalvik的进程模型的特点,从API和本地代码两个层面具体阐述了进程运行、创建和之间通信的部分细节。文中旨在为Dalvik的研究和应用提供参考。  相似文献   

8.
叶云  李春强  胡军山 《计算机工程》2011,37(16):291-292
研究Android系统专属的Dalvik虚拟机,分析Dalvik虚拟机的解释器、本地方法桥以及C库在CK610平台上的移植与优化。基于Dalvik虚拟机解释器的字节码分发机制,提出一种改进型Threaded分发机制,并实现硬件平台定制型MInterp解释器,实验证明该 MInterp解释器能使Dalvik虚拟机的运行速度提升1倍以上。  相似文献   

9.
JNI技术支持Java与本地C/C++的相互调用,在Android等混合语言实现的系统中有着广泛应用,但语言之间的安全特性差异使其成为安全薄弱环节,现有的分析方法难以处理多语言相互调用产生的安全缺陷.以JNI调用中易产生的内存泄漏为例,开展Java/C++JNI跨语言分析的研究.采用扩展的Java Bytecode(Bytecode*)指令作为C++语义的解释来消除跨语言分析的障碍.围绕JNI调用中内存泄漏的问题,做了以下3方面工作:1)定义兼容Java/C++语言的分块内存模型;2)基于LLVM/LLJVM,设计实现了C++到Bytecode*的翻译策略;3)建立方法调用图,提取方法摘要,利用过程间分析方法检测JNI调用中的内存泄漏.针对具有典型内存泄漏特征的JNI实例翻译检测表明,该工作能够准确检测出Java/C++混合语言中的内存泄漏,对于JNI混合语言编程的理解和漏洞分析具有重要价值.  相似文献   

10.
孟岩 《程序员》2004,(1):18-19
2003年对于C++程序员来说,是波澜不惊的一年。如果用一句话来概括,可以说这一年来在C++开发领域没有发生任何标志性或者决定性的事件。总体上讲,软件产业中最活跃的应用系统开发逐渐从C++转移到以Java和C#、VB.NET为代表的新一代编程语言之上,这一趋势已经越来越明显。预期在几年之后,C++将主要成为一个系统级的开发语言,在嵌入式开发、核心系统软件开发等领域发挥作用。在美国,C++处于稳定和缓慢地发展之中,从工作需求统计和其他现实迹象来看,C++仍然是工业界最主流的语言之一,而且C++程序员的收入仍然明显高于其他语言的使用者。  相似文献   

11.
移动应用软件已经拥有了数以千万计的用户群体.根据最新统计,Android手机以85.1%的市场占有份额,成为了最受欢迎的移动端设备.Android应用软件的快速开发,使得如何保证程序质量,成了难题.我们不仅要考虑程序的正确性,也应保证运行时的流畅性.现有的性能研究工作都基于传统的静态分析或者动态执行.对于Android程序,静态分析具有一定的局限性,而动态分析又忽略了APP执行时的遍历方式.因此,本文提出了基于GUI的Android自动化性能测试框架,将着重关注页面状态和APP状态的相关性.通过对页面的分析,聚合,尽可能遍历到APP的各个状态,然后从日志中,找出APP性能上的问题.本框架使用Java作为开发语言,搭建了Android移动软件自动化性能测试框架,并在开源社区F-Droid上随机抽取了移动应用软件进行实验.实验表明,该技术能更多的遍历APP的状态,发现APP在运行过程中出现的性能问题,取得良好的效果.  相似文献   

12.
串口在数据通信中应用广泛,但Android SDK指定使用Java作为第三方应用开发语言,这给C语言实现串口应用带来了困难。虽然Google Android已经发布了NDK(Native Development Kit,原生态开发包),支持开发者用C/C++语言开发Android程序,但目前官方提供的技术指导比较简略。通过开发一个Android下串口通信应用实例,详细介绍了Android NDK的开发流程,帮助开发人员快速的完成平台搭建。  相似文献   

13.
利用 Visual C++6 .0建立一个 MFC应用程序框架 ,通过较详细地阐述该框架的关键文件功能及其它们之间的相互联系 ,说明了 MFC应用程序设计的基本特征 ,从而有利于初学者更好地理解 MFC应用程序设计的基本思想 ,掌握 MFC应用程序设计的基本方法 ,进而更高效率地利用 MFC这一强大的工具 ,开发出更好的应用软件。  相似文献   

14.
Model-based development (MBD) holds the promise to capture potential timing problems in embedded software during the early phases of the development, securing the production of bug-free embedded software. For most MBD approaches, the source code is just an intermediate artifact that can be generated automatically from the models. This assumption clashes with an undeniable fact: a large share of the commercial embedded software exploits existing libraries or is developed using C/C++ natively. A way to reconcile the ambitions of MBD with the use of a programming language is by offering new language constructs and an innovative compilation tool-chain that prevents model error and timing problems “by construction.” However, the persistent popularity of C/C++ among embedded programmers and the limited availability of tools have severely limited the uptake of alternative programming languages for embedded software. Therefore, we propose an original route. Our language proposal, named Tice, has been shaped as a C++ active library. Tice retains full compatibility with existing C++ code, which can be integrated easily into new Tice-based projects. The enforcement of Tice syntax and semantics can be made by a standard C++ compiler, forgoing the need for new tools. In this article, we describe Tice's syntax, semantics, and model of computation and communication. We demonstrate Tice's practical applicability on an industrial scale use-case and give ample evidence for Tice's efficient compilation using off-the-shelf C++ compilers. Finally, we show Tice's code generation process.  相似文献   

15.
In many biomedical research laboratories, data analysis and visualization algorithms are typical prototypes using an interpreted programming language. If performance becomes an issue, they are ported to C and integrated with interpreted systems, not fully utilizing object‐oriented software development. This paper presents an overview of Scopira, an open source C++ framework suitable for biomedical data analysis and visualization. Scopira provides high‐performance end‐to‐end application development features, in the form of an extensible C++ library. This library provides general programming utilities, numerical matrices and algorithms, parallelization facilities, and graphical user interface elements. Copyright © 2008 John Wiley & Sons, Ltd.  相似文献   

16.
The software development process for embedded systems is getting faster and faster, which generally incurs an increase in the associated complexity. As a consequence, technology companies tend to invest in fast and automatic verification mechanisms, to create robust systems and reduce product recall rates. In addition, further development‐time reduction and system robustness can be achieved through cross‐platform frameworks, such as Qt, which favor the reliable port of software stacks to different devices. Based on that, the present paper proposes a simplified version of the Qt framework, which is integrated into a checker based on satisfiability modulo theories (SMT), known as the Efficient SMT‐based Context‐Bounded Model Checker, for verifying actual Qt‐based applications, with a success rate of 89%, for the developed benchmark suite. Furthermore, the simplified version of the Qt framework, named as Qt Operational Model, was also evaluated using other state‐of‐the‐art verifiers for C++ programs. In fact, Qt Operational Model was combined with 2 different verification approaches: explicit‐state model checking and also symbolic (bounded) model checking, during the experimental evaluation, which highlights its flexibility. The proposed methodology is the first one to formally verify Qt‐based applications, which has the potential to devise new directions for software verification of portable code.  相似文献   

17.
随着智能移动终端数量的增加,越来越多的安全问题成为困扰终端进一步发展的障碍。当前市场大部分安全软件不能够实现对应用行为的实时监控,极少安全软件需要root权限才能实现应用行为实时的监控。文章基于Android应用框架层的定制,利用Android系统Permission机制的动态检查模式实现应用运行时行为的检测。Android应用通过〈user-permission〉申请所需权限,在运行过程中需要调用对应的API或者访问系统数据时,会发生系统权限检查,从而实现对应用行为的监控。相对在应用层进行应用行为的监控要更简洁有效,通过在框架层的定制更好地实现了对应用行为的监控,同时带给系统的损耗更小。  相似文献   

18.
针对空间想象能力培养的教学需要,对基于Android 平台的工程图学助教助学系统 进行了研究。根据教与学的需要,确定了系统功能,设计了软件的框架结构。分析研究了移动设 备的系统平台,选择了系统的开发及运行平台。通过分析Android 框架中OpenGL ES 的设计接口, 实现了模型的轴测显示模式。通过分析OpenGL ES 中glDrawElements 方法的数据需求和VRML97 的数据格式,设计了虚拟模型加载器,实现了Android 系统中的VRML 模型3D 浏览器。开发了 软件的核心功能模块,设计实现了基于Android 平台的工程图学助教助学系统。该系统因其创新 性和实用性,在2014 年第十四届全国多媒体课件大赛中荣获一等奖。  相似文献   

19.
Lars Engebretsen 《Software》2006,36(15):1643-1654
This paper describes some of the author's experiences from a C++ implementation of a concordance program for texts in Old West Norse (also known as Old Icelandic) and Runic Swedish. Since the input to the program used a character repertoire that no standard one‐byte character encoding covers, it was natural to use Unicode to represent data both inside the program and in external files. Inside the program, each character was represented with C++ ‘wide characters’; the input and output was represented in UTF‐8. The author constructed C++ code conversion facets that convert data between those two representations during file I/O. This enabled him to successfully compile, and run, the concordance program on both Linux (Fedora Core 3 with gcc 3.4.2) and Windows XP (using Visual C++ .NET 2003). The only necessary change to the source when changing platform was isolated to the lines selecting which code conversion facet to use—all other pieces of code remained unchanged. In particular, the author could still use the standard C++ locale framework for collation and code conversion, in spite of the fact that the library‐provided code conversion facets had been replaced. Copyright © 2006 John Wiley & Sons, Ltd.  相似文献   

20.
Dale Parson  Zhenyu Zhu 《Software》2000,30(15):1641-1660
The JavaTM Native Interface (JNI) provides a set of mechanisms for implementing Java methods in C or C++. JNI is useful for reusing C and C++ code repositories within Java frameworks. JNI is also useful for real‐time systems, where compiled C/C++ code executes performance‐critical tasks, while Java code executes system control and feature tasks. Available JNI literature concentrates on creating Java proxy classes that allow Java clients to interact with C++ classes. Current JNI literature does not discuss Java proxies for entire C++ inheritance hierarchies; that is the topic of this paper. Our experience in reusing C++ class hierarchies within a Java framework has uncovered a set of useful techniques for constructing Java proxy class hierarchies that mirror their C++ counterparts. This report gives both high level design guidelines and specific programming idioms for constructing Java class hierarchies that serve as proxies for C++ counterparts. We begin by discussing opportunities for reuse within a proxy class hierarchy, as well as problems caused by differences between the Java and C++ approaches to inheritance. The two most significant differences are due to C++ support for invocation of a member function based on the static type of its class, and C++ support for multiple implementation inheritance. Two example C++ class hierarchies provide the basis for a set of sections that present the design guidelines and that codify the programming idioms. This work could serve as the basis for an automatic generator of Java proxy class hierarchies. Copyright © 2000 John Wiley & Sons, Ltd.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号