{"id":98,"date":"2020-03-05T11:41:39","date_gmt":"2020-03-05T11:41:39","guid":{"rendered":"https:\/\/arms10.org\/android\/?p=98"},"modified":"2020-03-05T11:41:41","modified_gmt":"2020-03-05T11:41:41","slug":"reloading-for-android","status":"publish","type":"post","link":"https:\/\/arms10.org\/android\/reloading-for-android\/","title":{"rendered":"Reloading for Android"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/codeshoppy.com\/android-app-ideas-for-students-college-project.html\"> Reloading for Android <\/a><\/h2>\n\n\n\n<p> This  paper  is  accompanied  by  a  video  demonstrating  the  tool in action. In this section we will briefly describe the demo applications  shown  in  the  video,  which  will  also  serve  as  the  foundation for the performance evaluation in the next section.  The first demo application is one of the sample applications made  by  Google  to  showcase  some  of  the  capabilities  of  the  Android  platform  called  DivideAndConquer,  [4].  It  is  chosen  for  this  paper  primarily  because  the  visual  nature  of  a  game  allows  the  viewer  to  clearly  see  the  immediate  effects  of  runtime  class  reloading.  The  application  consists  of  only  13  classes.  Clearly,  an  app  which  is  this  small  does  not  have  a  huge  redeployment  time,  thus  the  direct  savings  gained  by  utilizing class reloading with JRebel.Android will be relatively small. However, from the enormous amount of user experience with JRebel for standard Java, we know that developers change their  coding  habits  when  using  class  reloading.  Typically,  developers  will  test  out  even  small  changes  much  earlier  simply  because  they  are  automatically  reflected  in  the  running  application  automatically.  The  key  is  that  class  reloading  will  keep   developers   in   &#8220;the   zone&#8221;,   which   heavily   improves   productivity. In addition, the fact that all of the application state is  preserved  adds  to  the  benefits  of  not  being  constantly  interrupted   by   having   to   recreate   some   specific   runtime   scenario before testing the changed code.Given  the  small  size  of  the  Divide  and  Conquer  app,  a  second   more   realistic   application   has   been   picked   for   showcasing  in  this  paper,  namely  the  open-source  Google-developed  application  named  My  Tracks,  [5].  My  Tracks  is  much  larger  and  contains  just  over  500  classes,  and  lots  of  resource  files  and  declarative  resources  in  XML  files.  Fig.  4  shows a couple of screenshots of the appIn  this  section  we  report  on  the  redeploy  times  of  Android  application  development  on  the  chosen  sample  applications  with  and  without  JRebel.Android.  The  redeploy  time  without  JRebel.Android is measured from the time where the developer presses the run button in the IDE, which triggers reinstallation on  the  device.  For  these  experiments  a  Google  Nexus  5  phone  was  used.  The  redeploy  time  with  JRebel.Android  is  the  time  taken from when the tool detects a class file change (using OS file  system  notifications)  until  the  change  is  reflected  on  the  device. The tool automatically writes this time to system output during   normal   operation.   Table   1.   shows   the   measured   redeploy  times.  All  numbers  are  simple  averages  based  on  at  least  10  samples.  Numbers  were  very  similar  for  each  sample,  so  improving  the  statistic  validity  of  the  measurements  had  a  low priority for this paper. <a href=\"https:\/\/codeshoppy.com\/android-app-ideas-for-students-college-project.html\">CodeShoppy<\/a><\/p>\n\n\n\n<p> <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/codeshoppy.com\/android-app-ideas-for-students-college-project.html\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/arms10.org\/android\/wp-content\/uploads\/2020\/03\/Code-Shoppy1.png\" alt=\" Reloading for Android \" class=\"wp-image-99\" width=\"501\" height=\"161\" \/><\/a><\/figure>\n\n\n\n<p> As  can  be  seen  from  Table  1  the  size  of  the  app  is  somewhat proportional to the standard redeployment time. The installation size reported by the Nexus 5 phone was 672KB and 11.95MB  respectively  for  the  two  sample  apps.  Having  a  turnaround  time  of  3  seconds,  does  not  sound  like  much,  but  recall  that  the  app  is  completely  restarted,  so  all  state  is  lost.  For larger apps like My Tracks (medium size), where the clean redeploy is 15 seconds, the redeploy time is much more felt as a  pain  for  developers.  With  a  reload  time  of  not  much  more  than half a second (for reloading 13 changed classes) as offered by  JRebel.Android  it  saves  more  than  95%  of  the  dreadful  redeploy timentrospection   results,   and   new   members   cannot   be   found   through  reflection  at  all.  InstaReloader  has  some  support  for  reloading  resources,  but  from  simple  tests  notable  issues  were  observed.  Also,  in  contrast  to  JRebel.Android,  InstaReloader  leaves  generated  artifacts  inside  the  Android  manifest  file,  which will pollute production code.  <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><a href=\"https:\/\/codeshoppy.com\/android-app-ideas-for-students-college-project.html\">https:\/\/codeshoppy.com\/android-app-ideas-for-students-college-project.html<\/a><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Reloading for Android This paper is accompanied by a video demonstrating the tool in action. In this section we will briefly describe the demo applications shown in the video, which will also serve as the foundation for the performance evaluation in the next section. The first demo application is one of the sample applications made&hellip; <a class=\"more-link\" href=\"https:\/\/arms10.org\/android\/reloading-for-android\/\">Continue reading <span class=\"screen-reader-text\">Reloading for Android<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[]},"categories":[306],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Android App Ideas - Reloading for Android - Arms10 - Android<\/title>\n<meta name=\"description\" content=\"Android App Ideas - Reloading for Android - Download abstract and Buy source code sonline for android PHP Project ideas 2020 - Arms10 - Android\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/arms10.org\/android\/reloading-for-android\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android App Ideas - Reloading for Android - Arms10 - Android\" \/>\n<meta property=\"og:description\" content=\"Android App Ideas - Reloading for Android - Download abstract and Buy source code sonline for android PHP Project ideas 2020 - Arms10 - Android\" \/>\n<meta property=\"og:url\" content=\"https:\/\/arms10.org\/android\/reloading-for-android\/\" \/>\n<meta property=\"og:site_name\" content=\"Arms10 - Android\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-05T11:41:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-03-05T11:41:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/arms10.org\/android\/wp-content\/uploads\/2020\/03\/Code-Shoppy1.png\" \/>\n<meta name=\"author\" content=\"writer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"writer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/arms10.org\/android\/reloading-for-android\/\",\"url\":\"https:\/\/arms10.org\/android\/reloading-for-android\/\",\"name\":\"Android App Ideas - Reloading for Android - Arms10 - Android\",\"isPartOf\":{\"@id\":\"https:\/\/arms10.org\/android\/#website\"},\"datePublished\":\"2020-03-05T11:41:39+00:00\",\"dateModified\":\"2020-03-05T11:41:41+00:00\",\"author\":{\"@id\":\"https:\/\/arms10.org\/android\/#\/schema\/person\/f6476e715bf8c1e905f47c3e2f33d1a2\"},\"description\":\"Android App Ideas - Reloading for Android - Download abstract and Buy source code sonline for android PHP Project ideas 2020 - Arms10 - Android\",\"breadcrumb\":{\"@id\":\"https:\/\/arms10.org\/android\/reloading-for-android\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/arms10.org\/android\/reloading-for-android\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/arms10.org\/android\/reloading-for-android\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/arms10.org\/android\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reloading for Android\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/arms10.org\/android\/#website\",\"url\":\"https:\/\/arms10.org\/android\/\",\"name\":\"Arms10 - Android\",\"description\":\"Arms10 - Android Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/arms10.org\/android\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/arms10.org\/android\/#\/schema\/person\/f6476e715bf8c1e905f47c3e2f33d1a2\",\"name\":\"writer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/arms10.org\/android\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/35fd029f7ebd76b93d4c20332ebcb715?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/35fd029f7ebd76b93d4c20332ebcb715?s=96&d=mm&r=g\",\"caption\":\"writer\"},\"url\":\"https:\/\/arms10.org\/android\/author\/writer\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android App Ideas - Reloading for Android - Arms10 - Android","description":"Android App Ideas - Reloading for Android - Download abstract and Buy source code sonline for android PHP Project ideas 2020 - Arms10 - Android","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/arms10.org\/android\/reloading-for-android\/","og_locale":"en_US","og_type":"article","og_title":"Android App Ideas - Reloading for Android - Arms10 - Android","og_description":"Android App Ideas - Reloading for Android - Download abstract and Buy source code sonline for android PHP Project ideas 2020 - Arms10 - Android","og_url":"https:\/\/arms10.org\/android\/reloading-for-android\/","og_site_name":"Arms10 - Android","article_published_time":"2020-03-05T11:41:39+00:00","article_modified_time":"2020-03-05T11:41:41+00:00","og_image":[{"url":"https:\/\/arms10.org\/android\/wp-content\/uploads\/2020\/03\/Code-Shoppy1.png"}],"author":"writer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"writer","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/arms10.org\/android\/reloading-for-android\/","url":"https:\/\/arms10.org\/android\/reloading-for-android\/","name":"Android App Ideas - Reloading for Android - Arms10 - Android","isPartOf":{"@id":"https:\/\/arms10.org\/android\/#website"},"datePublished":"2020-03-05T11:41:39+00:00","dateModified":"2020-03-05T11:41:41+00:00","author":{"@id":"https:\/\/arms10.org\/android\/#\/schema\/person\/f6476e715bf8c1e905f47c3e2f33d1a2"},"description":"Android App Ideas - Reloading for Android - Download abstract and Buy source code sonline for android PHP Project ideas 2020 - Arms10 - Android","breadcrumb":{"@id":"https:\/\/arms10.org\/android\/reloading-for-android\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/arms10.org\/android\/reloading-for-android\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/arms10.org\/android\/reloading-for-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/arms10.org\/android\/"},{"@type":"ListItem","position":2,"name":"Reloading for Android"}]},{"@type":"WebSite","@id":"https:\/\/arms10.org\/android\/#website","url":"https:\/\/arms10.org\/android\/","name":"Arms10 - Android","description":"Arms10 - Android Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/arms10.org\/android\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/arms10.org\/android\/#\/schema\/person\/f6476e715bf8c1e905f47c3e2f33d1a2","name":"writer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/arms10.org\/android\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/35fd029f7ebd76b93d4c20332ebcb715?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/35fd029f7ebd76b93d4c20332ebcb715?s=96&d=mm&r=g","caption":"writer"},"url":"https:\/\/arms10.org\/android\/author\/writer\/"}]}},"_links":{"self":[{"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/posts\/98"}],"collection":[{"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":1,"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"predecessor-version":[{"id":100,"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/posts\/98\/revisions\/100"}],"wp:attachment":[{"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arms10.org\/android\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}