Serveur d'exploration Cyberinfrastructure

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

Hybrid PolyLingual Object Model: An Efficient and Seamless Integration of Java and Native Components on the Dalvik Virtual Machine

Identifieur interne : 000651 ( Pmc/Curation ); précédent : 000650; suivant : 000652

Hybrid PolyLingual Object Model: An Efficient and Seamless Integration of Java and Native Components on the Dalvik Virtual Machine

Auteurs : Yukun Huang [République populaire de Chine] ; Rong Chen [République populaire de Chine] ; Jingbo Wei [République populaire de Chine] ; Xilong Pei [République populaire de Chine] ; Jing Cao [République populaire de Chine] ; Prem Prakash Jayaraman [Australie] ; Rajiv Ranjan [Australie]

Source :

RBID : PMC:4082837

Abstract

JNI in the Android platform is often observed with low efficiency and high coding complexity. Although many researchers have investigated the JNI mechanism, few of them solve the efficiency and the complexity problems of JNI in the Android platform simultaneously. In this paper, a hybrid polylingual object (HPO) model is proposed to allow a CAR object being accessed as a Java object and as vice in the Dalvik virtual machine. It is an acceptable substitute for JNI to reuse the CAR-compliant components in Android applications in a seamless and efficient way. The metadata injection mechanism is designed to support the automatic mapping and reflection between CAR objects and Java objects. A prototype virtual machine, called HPO-Dalvik, is implemented by extending the Dalvik virtual machine to support the HPO model. Lifespan management, garbage collection, and data type transformation of HPO objects are also handled in the HPO-Dalvik virtual machine automatically. The experimental result shows that the HPO model outweighs the standard JNI in lower overhead on native side, better executing performance with no JNI bridging code being demanded.


Url:
DOI: 10.1155/2014/785434
PubMed: 25110745
PubMed Central: 4082837

Links toward previous steps (curation, corpus...)


Links to Exploration step

PMC:4082837

Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">Hybrid PolyLingual Object Model: An Efficient and Seamless Integration of Java and Native Components on the Dalvik Virtual Machine</title>
<author>
<name sortKey="Huang, Yukun" sort="Huang, Yukun" uniqKey="Huang Y" first="Yukun" last="Huang">Yukun Huang</name>
<affiliation wicri:level="1">
<nlm:aff id="I1">Tongji University, Shanghai 200092, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Tongji University, Shanghai 200092</wicri:regionArea>
</affiliation>
<affiliation wicri:level="1">
<nlm:aff id="I2">Jiangxi University of Finance and Economics, Nanchang 330029, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Jiangxi University of Finance and Economics, Nanchang 330029</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Chen, Rong" sort="Chen, Rong" uniqKey="Chen R" first="Rong" last="Chen">Rong Chen</name>
<affiliation wicri:level="1">
<nlm:aff id="I1">Tongji University, Shanghai 200092, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Tongji University, Shanghai 200092</wicri:regionArea>
</affiliation>
<affiliation wicri:level="1">
<nlm:aff id="I3">Shanghai Kortide Century Technology, Shanghai 201203, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shanghai Kortide Century Technology, Shanghai 201203</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Wei, Jingbo" sort="Wei, Jingbo" uniqKey="Wei J" first="Jingbo" last="Wei">Jingbo Wei</name>
<affiliation wicri:level="1">
<nlm:aff id="I4">Academy of Space Technology, Nanchang University, Nanchang 330031, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Academy of Space Technology, Nanchang University, Nanchang 330031</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Pei, Xilong" sort="Pei, Xilong" uniqKey="Pei X" first="Xilong" last="Pei">Xilong Pei</name>
<affiliation wicri:level="1">
<nlm:aff id="I1">Tongji University, Shanghai 200092, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Tongji University, Shanghai 200092</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Cao, Jing" sort="Cao, Jing" uniqKey="Cao J" first="Jing" last="Cao">Jing Cao</name>
<affiliation wicri:level="1">
<nlm:aff id="I3">Shanghai Kortide Century Technology, Shanghai 201203, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shanghai Kortide Century Technology, Shanghai 201203</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Prakash Jayaraman, Prem" sort="Prakash Jayaraman, Prem" uniqKey="Prakash Jayaraman P" first="Prem" last="Prakash Jayaraman">Prem Prakash Jayaraman</name>
<affiliation wicri:level="1">
<nlm:aff id="I5">CSIRO, Canberra, ACT 2601, Australia</nlm:aff>
<country xml:lang="fr">Australie</country>
<wicri:regionArea>CSIRO, Canberra, ACT 2601</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Ranjan, Rajiv" sort="Ranjan, Rajiv" uniqKey="Ranjan R" first="Rajiv" last="Ranjan">Rajiv Ranjan</name>
<affiliation wicri:level="1">
<nlm:aff id="I5">CSIRO, Canberra, ACT 2601, Australia</nlm:aff>
<country xml:lang="fr">Australie</country>
<wicri:regionArea>CSIRO, Canberra, ACT 2601</wicri:regionArea>
</affiliation>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">PMC</idno>
<idno type="pmid">25110745</idno>
<idno type="pmc">4082837</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4082837</idno>
<idno type="RBID">PMC:4082837</idno>
<idno type="doi">10.1155/2014/785434</idno>
<date when="2014">2014</date>
<idno type="wicri:Area/Pmc/Corpus">000651</idno>
<idno type="wicri:Area/Pmc/Curation">000651</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a" type="main">Hybrid PolyLingual Object Model: An Efficient and Seamless Integration of Java and Native Components on the Dalvik Virtual Machine</title>
<author>
<name sortKey="Huang, Yukun" sort="Huang, Yukun" uniqKey="Huang Y" first="Yukun" last="Huang">Yukun Huang</name>
<affiliation wicri:level="1">
<nlm:aff id="I1">Tongji University, Shanghai 200092, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Tongji University, Shanghai 200092</wicri:regionArea>
</affiliation>
<affiliation wicri:level="1">
<nlm:aff id="I2">Jiangxi University of Finance and Economics, Nanchang 330029, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Jiangxi University of Finance and Economics, Nanchang 330029</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Chen, Rong" sort="Chen, Rong" uniqKey="Chen R" first="Rong" last="Chen">Rong Chen</name>
<affiliation wicri:level="1">
<nlm:aff id="I1">Tongji University, Shanghai 200092, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Tongji University, Shanghai 200092</wicri:regionArea>
</affiliation>
<affiliation wicri:level="1">
<nlm:aff id="I3">Shanghai Kortide Century Technology, Shanghai 201203, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shanghai Kortide Century Technology, Shanghai 201203</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Wei, Jingbo" sort="Wei, Jingbo" uniqKey="Wei J" first="Jingbo" last="Wei">Jingbo Wei</name>
<affiliation wicri:level="1">
<nlm:aff id="I4">Academy of Space Technology, Nanchang University, Nanchang 330031, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Academy of Space Technology, Nanchang University, Nanchang 330031</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Pei, Xilong" sort="Pei, Xilong" uniqKey="Pei X" first="Xilong" last="Pei">Xilong Pei</name>
<affiliation wicri:level="1">
<nlm:aff id="I1">Tongji University, Shanghai 200092, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Tongji University, Shanghai 200092</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Cao, Jing" sort="Cao, Jing" uniqKey="Cao J" first="Jing" last="Cao">Jing Cao</name>
<affiliation wicri:level="1">
<nlm:aff id="I3">Shanghai Kortide Century Technology, Shanghai 201203, China</nlm:aff>
<country xml:lang="fr">République populaire de Chine</country>
<wicri:regionArea>Shanghai Kortide Century Technology, Shanghai 201203</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Prakash Jayaraman, Prem" sort="Prakash Jayaraman, Prem" uniqKey="Prakash Jayaraman P" first="Prem" last="Prakash Jayaraman">Prem Prakash Jayaraman</name>
<affiliation wicri:level="1">
<nlm:aff id="I5">CSIRO, Canberra, ACT 2601, Australia</nlm:aff>
<country xml:lang="fr">Australie</country>
<wicri:regionArea>CSIRO, Canberra, ACT 2601</wicri:regionArea>
</affiliation>
</author>
<author>
<name sortKey="Ranjan, Rajiv" sort="Ranjan, Rajiv" uniqKey="Ranjan R" first="Rajiv" last="Ranjan">Rajiv Ranjan</name>
<affiliation wicri:level="1">
<nlm:aff id="I5">CSIRO, Canberra, ACT 2601, Australia</nlm:aff>
<country xml:lang="fr">Australie</country>
<wicri:regionArea>CSIRO, Canberra, ACT 2601</wicri:regionArea>
</affiliation>
</author>
</analytic>
<series>
<title level="j">The Scientific World Journal</title>
<idno type="ISSN">2356-6140</idno>
<idno type="eISSN">1537-744X</idno>
<imprint>
<date when="2014">2014</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc>
<textClass></textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">
<p>JNI in the Android platform is often observed with low efficiency and high coding complexity. Although many researchers have investigated the JNI mechanism, few of them solve the efficiency and the complexity problems of JNI in the Android platform simultaneously. In this paper, a hybrid polylingual object (HPO) model is proposed to allow a CAR object being accessed as a Java object and as vice in the Dalvik virtual machine. It is an acceptable substitute for JNI to reuse the CAR-compliant components in Android applications in a seamless and efficient way. The metadata injection mechanism is designed to support the automatic mapping and reflection between CAR objects and Java objects. A prototype virtual machine, called HPO-Dalvik, is implemented by extending the Dalvik virtual machine to support the HPO model. Lifespan management, garbage collection, and data type transformation of HPO objects are also handled in the HPO-Dalvik virtual machine automatically. The experimental result shows that the HPO model outweighs the standard JNI in lower overhead on native side, better executing performance with no JNI bridging code being demanded.</p>
</div>
</front>
<back>
<div1 type="bibliography">
<listBibl>
<biblStruct>
<analytic>
<author>
<name sortKey="Liang, S" uniqKey="Liang S">S Liang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Li, J Z" uniqKey="Li J">J-Z Li</name>
</author>
<author>
<name sortKey="Zhang, Z P" uniqKey="Zhang Z">Z-P Zhang</name>
</author>
<author>
<name sortKey="Qiao, B" uniqKey="Qiao B">B Qiao</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wanbin, Q" uniqKey="Wanbin Q">Q Wanbin</name>
</author>
<author>
<name sortKey="Guojie, Z" uniqKey="Guojie Z">Z Guojie</name>
</author>
<author>
<name sortKey="Honglin, Q" uniqKey="Honglin Q">Q Honglin</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Zhang, Y J" uniqKey="Zhang Y">Y-J Zhang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lee, S" uniqKey="Lee S">S Lee</name>
</author>
<author>
<name sortKey="Jeon, Jw" uniqKey="Jeon J">JW Jeon</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Stepanian, L" uniqKey="Stepanian L">L Stepanian</name>
</author>
<author>
<name sortKey="Brown, Ad" uniqKey="Brown A">AD Brown</name>
</author>
<author>
<name sortKey="Kielstra, A" uniqKey="Kielstra A">A Kielstra</name>
</author>
<author>
<name sortKey="Koblents, G" uniqKey="Koblents G">G Koblents</name>
</author>
<author>
<name sortKey="Stoodley, K" uniqKey="Stoodley K">K Stoodley</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Yu Hsin, T" uniqKey="Yu Hsin T">T Yu-Hsin</name>
</author>
<author>
<name sortKey="I Wei, W" uniqKey="I Wei W">W I-Wei</name>
</author>
<author>
<name sortKey="I Chun, L" uniqKey="I Chun L">L I-Chun</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lee, Y H" uniqKey="Lee Y">Y-H Lee</name>
</author>
<author>
<name sortKey="Chandrian, P" uniqKey="Chandrian P">P Chandrian</name>
</author>
<author>
<name sortKey="Li, B" uniqKey="Li B">B Li</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bubak, M" uniqKey="Bubak M">M Bubak</name>
</author>
<author>
<name sortKey="Dawid, K" uniqKey="Dawid K">K Dawid</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hummer, W" uniqKey="Hummer W">W Hummer</name>
</author>
<author>
<name sortKey="Wolf, W" uniqKey="Wolf W">W Wolf</name>
</author>
<author>
<name sortKey="Hahn, C" uniqKey="Hahn C">C Hahn</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Chen, M" uniqKey="Chen M">M Chen</name>
</author>
<author>
<name sortKey="Shalom, G" uniqKey="Shalom G">G Shalom</name>
</author>
<author>
<name sortKey="Srinivas, S" uniqKey="Srinivas S">S Srinivas</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Halloway, S" uniqKey="Halloway S">S Halloway</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wang, L" uniqKey="Wang L">L Wang</name>
</author>
<author>
<name sortKey="Chen, D" uniqKey="Chen D">D Chen</name>
</author>
<author>
<name sortKey="Hu, Y" uniqKey="Hu Y">Y Hu</name>
</author>
<author>
<name sortKey="Ma, Y" uniqKey="Ma Y">Y Ma</name>
</author>
<author>
<name sortKey="Wang, J" uniqKey="Wang J">J Wang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Zhang, W" uniqKey="Zhang W">W Zhang</name>
</author>
<author>
<name sortKey="Wang, L" uniqKey="Wang L">L Wang</name>
</author>
<author>
<name sortKey="Liu, D" uniqKey="Liu D">D Liu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wang, L" uniqKey="Wang L">L Wang</name>
</author>
<author>
<name sortKey="Chen, D" uniqKey="Chen D">D Chen</name>
</author>
<author>
<name sortKey="Zhao, J" uniqKey="Zhao J">J Zhao</name>
</author>
<author>
<name sortKey="Tao, J" uniqKey="Tao J">J Tao</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wang, L" uniqKey="Wang L">L Wang</name>
</author>
<author>
<name sortKey="Kunze, M" uniqKey="Kunze M">M Kunze</name>
</author>
<author>
<name sortKey="Tao, J" uniqKey="Tao J">J Tao</name>
</author>
<author>
<name sortKey="Von Laszewski, G" uniqKey="Von Laszewski G">G von Laszewski</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wang, L" uniqKey="Wang L">L Wang</name>
</author>
<author>
<name sortKey="Chen, D" uniqKey="Chen D">D Chen</name>
</author>
<author>
<name sortKey="Huang, F" uniqKey="Huang F">F Huang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Von Laszewski, G" uniqKey="Von Laszewski G">G von Laszewski</name>
</author>
<author>
<name sortKey="Dayal, J" uniqKey="Dayal J">J Dayal</name>
</author>
<author>
<name sortKey="Wang, L" uniqKey="Wang L">L Wang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Chen, D" uniqKey="Chen D">D Chen</name>
</author>
<author>
<name sortKey="Wang, L" uniqKey="Wang L">L Wang</name>
</author>
<author>
<name sortKey="Bian, C" uniqKey="Bian C">C Bian</name>
</author>
<author>
<name sortKey="Zhang, X" uniqKey="Zhang X">X Zhang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Demaster, Jd" uniqKey="Demaster J">JD deMaster</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Beazley, Dm" uniqKey="Beazley D">DM Beazley</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Gabrilovich, E" uniqKey="Gabrilovich E">E Gabrilovich</name>
</author>
<author>
<name sortKey="Finkelstein, L" uniqKey="Finkelstein L">L Finkelstein</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Chen, R" uniqKey="Chen R">R Chen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Batyuk, L" uniqKey="Batyuk L">L Batyuk</name>
</author>
<author>
<name sortKey="Schmidt, Ad" uniqKey="Schmidt A">AD Schmidt</name>
</author>
<author>
<name sortKey="Schmidt, Hg" uniqKey="Schmidt H">HG Schmidt</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lin, C M" uniqKey="Lin C">C-M Lin</name>
</author>
<author>
<name sortKey="Lin, J H" uniqKey="Lin J">J-H Lin</name>
</author>
<author>
<name sortKey="Dow, C R" uniqKey="Dow C">C-R Dow</name>
</author>
<author>
<name sortKey="Wen, C M" uniqKey="Wen C">C-M Wen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Kim, Y J" uniqKey="Kim Y">Y-J Kim</name>
</author>
<author>
<name sortKey="Cho, S J" uniqKey="Cho S">S-J Cho</name>
</author>
<author>
<name sortKey="Kim, K J" uniqKey="Kim K">K-J Kim</name>
</author>
<author>
<name sortKey="Hwang, E H" uniqKey="Hwang E">E-H Hwang</name>
</author>
<author>
<name sortKey="Yoon, S H" uniqKey="Yoon S">S-H Yoon</name>
</author>
<author>
<name sortKey="Jeon, J W" uniqKey="Jeon J">J-W Jeon</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Welsh, M" uniqKey="Welsh M">M Welsh</name>
</author>
<author>
<name sortKey="Culler, D" uniqKey="Culler D">D Culler</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bubak, M" uniqKey="Bubak M">M Bubak</name>
</author>
<author>
<name sortKey="Kurzyniec, D" uniqKey="Kurzyniec D">D Kurzyniec</name>
</author>
<author>
<name sortKey="Luszczek, P" uniqKey="Luszczek P">P Luszczek</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Huang, Y" uniqKey="Huang Y">Y Huang</name>
</author>
<author>
<name sortKey="Taylor, I" uniqKey="Taylor I">I Taylor</name>
</author>
<author>
<name sortKey="Walker, Dw" uniqKey="Walker D">DW Walker</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Canfora, G" uniqKey="Canfora G">G Canfora</name>
</author>
<author>
<name sortKey="Fasolino, Ar" uniqKey="Fasolino A">AR Fasolino</name>
</author>
<author>
<name sortKey="Frattolillo, G" uniqKey="Frattolillo G">G Frattolillo</name>
</author>
<author>
<name sortKey="Tramontana, P" uniqKey="Tramontana P">P Tramontana</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Culp, Tr" uniqKey="Culp T">TR Culp</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Huang, Y" uniqKey="Huang Y">Y Huang</name>
</author>
<author>
<name sortKey="Walker, Dw" uniqKey="Walker D">DW Walker</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Vairale, V" uniqKey="Vairale V">V Vairale</name>
</author>
<author>
<name sortKey="Honwadkar, K" uniqKey="Honwadkar K">K Honwadkar</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hirzel, M" uniqKey="Hirzel M">M Hirzel</name>
</author>
<author>
<name sortKey="Grimm, R" uniqKey="Grimm R">R Grimm</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hongyu, Z" uniqKey="Hongyu Z">Z Hongyu</name>
</author>
<author>
<name sortKey="Maofeng, L" uniqKey="Maofeng L">L Maofeng</name>
</author>
<author>
<name sortKey="Zhiqin, L" uniqKey="Zhiqin L">L Zhiqin</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Verbowski, C" uniqKey="Verbowski C">C Verbowski</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Alder, D" uniqKey="Alder D">D Alder</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ratabouil, S" uniqKey="Ratabouil S">S Ratabouil</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lee, Jk" uniqKey="Lee J">JK Lee</name>
</author>
<author>
<name sortKey="Lee, Jy" uniqKey="Lee J">JY Lee</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Chen, R" uniqKey="Chen R">R Chen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Mccluskey, G" uniqKey="Mccluskey G">G McCluskey</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Bellia, M" uniqKey="Bellia M">M Bellia</name>
</author>
<author>
<name sortKey="Occhiuto, Me" uniqKey="Occhiuto M">ME Occhiuto</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Verbowski, C" uniqKey="Verbowski C">C Verbowski</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Cunningham, H" uniqKey="Cunningham H">H Cunningham</name>
</author>
<author>
<name sortKey="Cunningham, H" uniqKey="Cunningham H">H Cunningham</name>
</author>
<author>
<name sortKey="Maynard, D" uniqKey="Maynard D">D Maynard</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Reeve, L" uniqKey="Reeve L">L Reeve</name>
</author>
<author>
<name sortKey="Han, H" uniqKey="Han H">H Han</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Attanasio, Cr" uniqKey="Attanasio C">CR Attanasio</name>
</author>
<author>
<name sortKey="Bacon, Df" uniqKey="Bacon D">DF Bacon</name>
</author>
<author>
<name sortKey="Cocchi, A" uniqKey="Cocchi A">A Cocchi</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Chen, R" uniqKey="Chen R">R Chen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Liu, Y" uniqKey="Liu Y">Y Liu</name>
</author>
<author>
<name sortKey="Zhu, Y" uniqKey="Zhu Y">Y Zhu</name>
</author>
<author>
<name sortKey="Ni, L" uniqKey="Ni L">L Ni</name>
</author>
<author>
<name sortKey="Xue, G" uniqKey="Xue G">G Xue</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Liu, X" uniqKey="Liu X">X Liu</name>
</author>
<author>
<name sortKey="Yang, Y" uniqKey="Yang Y">Y Yang</name>
</author>
<author>
<name sortKey="Yuan, D" uniqKey="Yuan D">D Yuan</name>
</author>
<author>
<name sortKey="Chen, J" uniqKey="Chen J">J Chen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Xu, Z" uniqKey="Xu Z">Z Xu</name>
</author>
<author>
<name sortKey="Wei, X" uniqKey="Wei X">X Wei</name>
</author>
<author>
<name sortKey="Luo, X" uniqKey="Luo X">X Luo</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Xu, Z" uniqKey="Xu Z">Z Xu</name>
</author>
<author>
<name sortKey="Luo, X" uniqKey="Luo X">X Luo</name>
</author>
<author>
<name sortKey="Zhang, S" uniqKey="Zhang S">S Zhang</name>
</author>
<author>
<name sortKey="Wei, X" uniqKey="Wei X">X Wei</name>
</author>
<author>
<name sortKey="Mei, L" uniqKey="Mei L">L Mei</name>
</author>
<author>
<name sortKey="Hu, C" uniqKey="Hu C">C Hu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Xu, Z" uniqKey="Xu Z">Z Xu</name>
</author>
<author>
<name sortKey="Liu, Y" uniqKey="Liu Y">Y Liu</name>
</author>
<author>
<name sortKey="Mei, L" uniqKey="Mei L">L Mei</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Luo, X" uniqKey="Luo X">X Luo</name>
</author>
<author>
<name sortKey="Xu, Z" uniqKey="Xu Z">Z Xu</name>
</author>
<author>
<name sortKey="Yu, J" uniqKey="Yu J">J Yu</name>
</author>
<author>
<name sortKey="Chen, X" uniqKey="Chen X">X Chen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hu, C" uniqKey="Hu C">C Hu</name>
</author>
<author>
<name sortKey="Xu, Z" uniqKey="Xu Z">Z Xu</name>
</author>
<author>
<name sortKey="Liu, Y" uniqKey="Liu Y">Y Liu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Liu, Y" uniqKey="Liu Y">Y Liu</name>
</author>
<author>
<name sortKey="Zhang, Q" uniqKey="Zhang Q">Q Zhang</name>
</author>
<author>
<name sortKey="Ni, L" uniqKey="Ni L">L Ni</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Liu, Y" uniqKey="Liu Y">Y Liu</name>
</author>
<author>
<name sortKey="Ni, L" uniqKey="Ni L">L Ni</name>
</author>
<author>
<name sortKey="Hu, C" uniqKey="Hu C">C Hu</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article">
<pmc-dir>properties open_access</pmc-dir>
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">ScientificWorldJournal</journal-id>
<journal-id journal-id-type="iso-abbrev">ScientificWorldJournal</journal-id>
<journal-id journal-id-type="publisher-id">TSWJ</journal-id>
<journal-title-group>
<journal-title>The Scientific World Journal</journal-title>
</journal-title-group>
<issn pub-type="ppub">2356-6140</issn>
<issn pub-type="epub">1537-744X</issn>
<publisher>
<publisher-name>Hindawi Publishing Corporation</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="pmid">25110745</article-id>
<article-id pub-id-type="pmc">4082837</article-id>
<article-id pub-id-type="doi">10.1155/2014/785434</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Research Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Hybrid PolyLingual Object Model: An Efficient and Seamless Integration of Java and Native Components on the Dalvik Virtual Machine</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Huang</surname>
<given-names>Yukun</given-names>
</name>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="I2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Rong</given-names>
</name>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="I3">
<sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Wei</surname>
<given-names>Jingbo</given-names>
</name>
<xref ref-type="aff" rid="I4">
<sup>4</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Pei</surname>
<given-names>Xilong</given-names>
</name>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Cao</surname>
<given-names>Jing</given-names>
</name>
<xref ref-type="aff" rid="I3">
<sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Prakash Jayaraman</surname>
<given-names>Prem</given-names>
</name>
<xref ref-type="aff" rid="I5">
<sup>5</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ranjan</surname>
<given-names>Rajiv</given-names>
</name>
<xref ref-type="aff" rid="I5">
<sup>5</sup>
</xref>
<xref ref-type="corresp" rid="cor1">*</xref>
</contrib>
</contrib-group>
<aff id="I1">
<sup>1</sup>
Tongji University, Shanghai 200092, China</aff>
<aff id="I2">
<sup>2</sup>
Jiangxi University of Finance and Economics, Nanchang 330029, China</aff>
<aff id="I3">
<sup>3</sup>
Shanghai Kortide Century Technology, Shanghai 201203, China</aff>
<aff id="I4">
<sup>4</sup>
Academy of Space Technology, Nanchang University, Nanchang 330031, China</aff>
<aff id="I5">
<sup>5</sup>
CSIRO, Canberra, ACT 2601, Australia</aff>
<author-notes>
<corresp id="cor1">*Rajiv Ranjan:
<email>raj.ranjan@csiro.au</email>
</corresp>
<fn fn-type="other">
<p>Academic Editor: Zheng Xu</p>
</fn>
</author-notes>
<pub-date pub-type="ppub">
<year>2014</year>
</pub-date>
<pub-date pub-type="epub">
<day>12</day>
<month>6</month>
<year>2014</year>
</pub-date>
<volume>2014</volume>
<elocation-id>785434</elocation-id>
<history>
<date date-type="received">
<day>16</day>
<month>5</month>
<year>2014</year>
</date>
<date date-type="accepted">
<day>19</day>
<month>5</month>
<year>2014</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright © 2014 Yukun Huang et al.</copyright-statement>
<copyright-year>2014</copyright-year>
<license license-type="open-access">
<license-p>This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<abstract>
<p>JNI in the Android platform is often observed with low efficiency and high coding complexity. Although many researchers have investigated the JNI mechanism, few of them solve the efficiency and the complexity problems of JNI in the Android platform simultaneously. In this paper, a hybrid polylingual object (HPO) model is proposed to allow a CAR object being accessed as a Java object and as vice in the Dalvik virtual machine. It is an acceptable substitute for JNI to reuse the CAR-compliant components in Android applications in a seamless and efficient way. The metadata injection mechanism is designed to support the automatic mapping and reflection between CAR objects and Java objects. A prototype virtual machine, called HPO-Dalvik, is implemented by extending the Dalvik virtual machine to support the HPO model. Lifespan management, garbage collection, and data type transformation of HPO objects are also handled in the HPO-Dalvik virtual machine automatically. The experimental result shows that the HPO model outweighs the standard JNI in lower overhead on native side, better executing performance with no JNI bridging code being demanded.</p>
</abstract>
</article-meta>
</front>
<floats-group>
<fig id="fig1" orientation="portrait" position="float">
<label>Figure 1</label>
<caption>
<p>Hybrid polylingual object model and runtime environments. (a) A single HPO. (b) A runtime environment supporting the objects for Java, HPO, and CAR component.</p>
</caption>
<graphic xlink:href="TSWJ2014-785434.001"></graphic>
</fig>
<fig id="fig2" orientation="portrait" position="float">
<label>Figure 2</label>
<caption>
<p>Inheritance of HPO classes. (a) Inheritance in Java side. (b) Inheritance in native side. (c) Interface inheritance.</p>
</caption>
<graphic xlink:href="TSWJ2014-785434.002"></graphic>
</fig>
<fig id="fig3" orientation="portrait" position="float">
<label>Figure 3</label>
<caption>
<p>Mapping and Coupling. (a) FooBar component and CFooBar class. (b)The corresponding JSO classes coupled with CFooBar.</p>
</caption>
<graphic xlink:href="TSWJ2014-785434.003"></graphic>
</fig>
<fig id="fig4" orientation="portrait" position="float">
<label>Figure 4</label>
<caption>
<p>NEO metadata injection. (a) Inject the CAR object metadata into the JSO ClassObject.(b) The modified structure of the JSO ClassObject.</p>
</caption>
<graphic xlink:href="TSWJ2014-785434.004"></graphic>
</fig>
<fig id="alg1" orientation="portrait" position="float">
<label>Algorithm 1</label>
<caption>
<p>Definitions of JSO classes.</p>
</caption>
<graphic xlink:href="TSWJ2014-785434.alg.001"></graphic>
</fig>
<fig id="alg2" orientation="portrait" position="float">
<label>Algorithm 2</label>
<caption>
<p>Definitions of HPO classes.</p>
</caption>
<graphic xlink:href="TSWJ2014-785434.alg.002"></graphic>
</fig>
<fig id="alg3" orientation="portrait" position="float">
<label>Algorithm 3</label>
<caption>
<p>Programming with HPO.</p>
</caption>
<graphic xlink:href="TSWJ2014-785434.alg.003"></graphic>
</fig>
<table-wrap id="tab1" orientation="portrait" position="float">
<label>Table 1</label>
<caption>
<p>Data types of Java and CAR.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="1" colspan="1">Java </th>
<th align="center" rowspan="1" colspan="1">CAR </th>
<th align="center" rowspan="1" colspan="1">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">boolean</td>
<td align="center" rowspan="1" colspan="1">Boolean</td>
<td align="center" rowspan="1" colspan="1">Eight bit integer</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">byte</td>
<td align="center" rowspan="1" colspan="1">Byte</td>
<td align="center" rowspan="1" colspan="1">Eight bit signed integer</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">short</td>
<td align="center" rowspan="1" colspan="1">Int16</td>
<td align="center" rowspan="1" colspan="1">16 bit signed short</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">int</td>
<td align="center" rowspan="1" colspan="1">Int32</td>
<td align="center" rowspan="1" colspan="1">32 bit signed integer</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">long</td>
<td align="center" rowspan="1" colspan="1">Int64</td>
<td align="center" rowspan="1" colspan="1">64 bit signed long</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">char</td>
<td align="center" rowspan="1" colspan="1">Char16</td>
<td align="center" rowspan="1" colspan="1">16 bit unsigned integer</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">float</td>
<td align="center" rowspan="1" colspan="1">Float</td>
<td align="center" rowspan="1" colspan="1">32 bit float</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">double</td>
<td align="center" rowspan="1" colspan="1">Double</td>
<td align="center" rowspan="1" colspan="1">64 bit float</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">Object</td>
<td align="center" rowspan="1" colspan="1">Interface</td>
<td align="center" rowspan="1" colspan="1">object</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">String</td>
<td align="center" rowspan="1" colspan="1">String</td>
<td align="center" rowspan="1" colspan="1">String</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">StringBuffer</td>
<td align="center" rowspan="1" colspan="1">StringBuf</td>
<td align="center" rowspan="1" colspan="1">String buffer</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">array []</td>
<td align="center" rowspan="1" colspan="1">ArrayOf/BufferOf</td>
<td align="center" rowspan="1" colspan="1">array</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab2" orientation="portrait" position="float">
<label>Table 2</label>
<caption>
<p>Call native method from Java.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="2" colspan="1">From Java (ms)</th>
<th align="center" colspan="2" rowspan="1">100</th>
<th align="center" colspan="2" rowspan="1">200</th>
<th align="center" colspan="2" rowspan="1">400</th>
<th align="center" colspan="2" rowspan="1">600</th>
<th align="center" colspan="2" rowspan="1">800</th>
<th align="center" colspan="2" rowspan="1">1000</th>
</tr>
<tr>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">Sum</td>
<td align="center" rowspan="1" colspan="1">0.20</td>
<td align="center" rowspan="1" colspan="1">0.21</td>
<td align="center" rowspan="1" colspan="1">0.38</td>
<td align="center" rowspan="1" colspan="1">0.75</td>
<td align="center" rowspan="1" colspan="1">1.00</td>
<td align="center" rowspan="1" colspan="1">1.10</td>
<td align="center" rowspan="1" colspan="1">1.22</td>
<td align="center" rowspan="1" colspan="1">1.24</td>
<td align="center" rowspan="1" colspan="1">1.71</td>
<td align="center" rowspan="1" colspan="1">1.78</td>
<td align="center" rowspan="1" colspan="1">1.80</td>
<td align="center" rowspan="1" colspan="1">1.85</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">ArrayAdd</td>
<td align="center" rowspan="1" colspan="1">7.85</td>
<td align="center" rowspan="1" colspan="1">0.66</td>
<td align="center" rowspan="1" colspan="1">17.00</td>
<td align="center" rowspan="1" colspan="1">8.44</td>
<td align="center" rowspan="1" colspan="1">30.50</td>
<td align="center" rowspan="1" colspan="1">13.92</td>
<td align="center" rowspan="1" colspan="1">46.50</td>
<td align="center" rowspan="1" colspan="1">28.77</td>
<td align="center" rowspan="1" colspan="1">53.30</td>
<td align="center" rowspan="1" colspan="1">41.92</td>
<td align="center" rowspan="1" colspan="1">86.10</td>
<td align="center" rowspan="1" colspan="1">78.60</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">Strcat</td>
<td align="center" rowspan="1" colspan="1">15.12</td>
<td align="center" rowspan="1" colspan="1">1.21</td>
<td align="center" rowspan="1" colspan="1">23.60</td>
<td align="center" rowspan="1" colspan="1">9.06</td>
<td align="center" rowspan="1" colspan="1">35.70</td>
<td align="center" rowspan="1" colspan="1">28.50</td>
<td align="center" rowspan="1" colspan="1">56.43</td>
<td align="center" rowspan="1" colspan="1">25.96</td>
<td align="center" rowspan="1" colspan="1">95.70</td>
<td align="center" rowspan="1" colspan="1">49.12</td>
<td align="center" rowspan="1" colspan="1">136.26</td>
<td align="center" rowspan="1" colspan="1">85.00</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">GetMyObject</td>
<td align="center" rowspan="1" colspan="1">148.10</td>
<td align="center" rowspan="1" colspan="1">15.70</td>
<td align="center" rowspan="1" colspan="1">259.12</td>
<td align="center" rowspan="1" colspan="1">36.82</td>
<td align="center" rowspan="1" colspan="1">477.37</td>
<td align="center" rowspan="1" colspan="1">91.40</td>
<td align="center" rowspan="1" colspan="1">873.03</td>
<td align="center" rowspan="1" colspan="1">172.02</td>
<td align="center" rowspan="1" colspan="1">1139.78</td>
<td align="center" rowspan="1" colspan="1">309.60</td>
<td align="center" rowspan="1" colspan="1">1354.90</td>
<td align="center" rowspan="1" colspan="1">423.00</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab3" orientation="portrait" position="float">
<label>Table 3</label>
<caption>
<p>Run native method in native.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="2" colspan="1">From Java (ms)</th>
<th align="center" colspan="2" rowspan="1">100</th>
<th align="center" colspan="2" rowspan="1">200</th>
<th align="center" colspan="2" rowspan="1">400</th>
<th align="center" colspan="2" rowspan="1">600</th>
<th align="center" colspan="2" rowspan="1">800</th>
<th align="center" colspan="2" rowspan="1">1000</th>
</tr>
<tr>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">Sum</td>
<td align="center" rowspan="1" colspan="1">0.12</td>
<td align="center" rowspan="1" colspan="1">0.13</td>
<td align="center" rowspan="1" colspan="1">0.27</td>
<td align="center" rowspan="1" colspan="1">0.28</td>
<td align="center" rowspan="1" colspan="1">0.58</td>
<td align="center" rowspan="1" colspan="1">0.52</td>
<td align="center" rowspan="1" colspan="1">0.87</td>
<td align="center" rowspan="1" colspan="1">0.99</td>
<td align="center" rowspan="1" colspan="1">1.15</td>
<td align="center" rowspan="1" colspan="1">1.33</td>
<td align="center" rowspan="1" colspan="1">1.56</td>
<td align="center" rowspan="1" colspan="1">1.65</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">ArrayAdd</td>
<td align="center" rowspan="1" colspan="1">7.77</td>
<td align="center" rowspan="1" colspan="1">0.36</td>
<td align="center" rowspan="1" colspan="1">12.94</td>
<td align="center" rowspan="1" colspan="1">4.20</td>
<td align="center" rowspan="1" colspan="1">20.09</td>
<td align="center" rowspan="1" colspan="1">14.38</td>
<td align="center" rowspan="1" colspan="1">33.45</td>
<td align="center" rowspan="1" colspan="1">16.48</td>
<td align="center" rowspan="1" colspan="1">40.82</td>
<td align="center" rowspan="1" colspan="1">20.15</td>
<td align="center" rowspan="1" colspan="1">70.63</td>
<td align="center" rowspan="1" colspan="1">26.45</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">Strcat</td>
<td align="center" rowspan="1" colspan="1">6.16</td>
<td align="center" rowspan="1" colspan="1">0.40</td>
<td align="center" rowspan="1" colspan="1">17.02</td>
<td align="center" rowspan="1" colspan="1">4.82</td>
<td align="center" rowspan="1" colspan="1">33.84</td>
<td align="center" rowspan="1" colspan="1">16.28</td>
<td align="center" rowspan="1" colspan="1">54.84</td>
<td align="center" rowspan="1" colspan="1">20.26</td>
<td align="center" rowspan="1" colspan="1">98.93</td>
<td align="center" rowspan="1" colspan="1">24.19</td>
<td align="center" rowspan="1" colspan="1">127.34</td>
<td align="center" rowspan="1" colspan="1">29.77</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">GetMyObject</td>
<td align="center" rowspan="1" colspan="1">145.62</td>
<td align="center" rowspan="1" colspan="1">12.11</td>
<td align="center" rowspan="1" colspan="1">251.60</td>
<td align="center" rowspan="1" colspan="1">18.43</td>
<td align="center" rowspan="1" colspan="1">442.18</td>
<td align="center" rowspan="1" colspan="1">27.65</td>
<td align="center" rowspan="1" colspan="1">787.20</td>
<td align="center" rowspan="1" colspan="1">42.89</td>
<td align="center" rowspan="1" colspan="1">1054.20</td>
<td align="center" rowspan="1" colspan="1">51.34</td>
<td align="center" rowspan="1" colspan="1">1129.14</td>
<td align="center" rowspan="1" colspan="1">53.42</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab4" orientation="portrait" position="float">
<label>Table 4</label>
<caption>
<p>Average elapsed time and invoking cost of native method.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="2" colspan="1">From Java (ms)</th>
<th align="center" colspan="2" rowspan="1">From Java</th>
<th align="center" colspan="2" rowspan="1">In native</th>
<th align="center" colspan="2" rowspan="1">Invoking cost</th>
</tr>
<tr>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
<th align="center" rowspan="1" colspan="1">JNI</th>
<th align="center" rowspan="1" colspan="1">HPO</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">Sum</td>
<td align="center" rowspan="1" colspan="1">2.06</td>
<td align="center" rowspan="1" colspan="1">2.45</td>
<td align="center" rowspan="1" colspan="1">1.40</td>
<td align="center" rowspan="1" colspan="1">1.04</td>
<td align="center" rowspan="1" colspan="1">0.66</td>
<td align="center" rowspan="1" colspan="1">1.41</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">ArrayAdd</td>
<td align="center" rowspan="1" colspan="1">78.33</td>
<td align="center" rowspan="1" colspan="1">43.76</td>
<td align="center" rowspan="1" colspan="1">61.66</td>
<td align="center" rowspan="1" colspan="1">23.28</td>
<td align="center" rowspan="1" colspan="1">16.67</td>
<td align="center" rowspan="1" colspan="1">20.48</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">Strcat</td>
<td align="center" rowspan="1" colspan="1">118.06</td>
<td align="center" rowspan="1" colspan="1">53.06</td>
<td align="center" rowspan="1" colspan="1">95.62</td>
<td align="center" rowspan="1" colspan="1">27.10</td>
<td align="center" rowspan="1" colspan="1">22.45</td>
<td align="center" rowspan="1" colspan="1">25.96</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">GetMyObject</td>
<td align="center" rowspan="1" colspan="1">1367.45</td>
<td align="center" rowspan="1" colspan="1">277.72</td>
<td align="center" rowspan="1" colspan="1">1233.09</td>
<td align="center" rowspan="1" colspan="1">79.40</td>
<td align="center" rowspan="1" colspan="1">134.36</td>
<td align="center" rowspan="1" colspan="1">198.32</td>
</tr>
</tbody>
</table>
</table-wrap>
</floats-group>
</pmc>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/CyberinfraV1/Data/Pmc/Curation
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000651 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd -nk 000651 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Ticri/CIDE
   |area=    CyberinfraV1
   |flux=    Pmc
   |étape=   Curation
   |type=    RBID
   |clé=     PMC:4082837
   |texte=   Hybrid PolyLingual Object Model: An Efficient and Seamless Integration of Java and Native Components on the Dalvik Virtual Machine
}}

Pour générer des pages wiki

HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Curation/RBID.i   -Sk "pubmed:25110745" \
       | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd   \
       | NlmPubMed2Wicri -a CyberinfraV1 

Wicri

This area was generated with Dilib version V0.6.25.
Data generation: Thu Oct 27 09:30:58 2016. Site generation: Sun Mar 10 23:08:40 2024