Accelerate Your Mobile Apps for Android On

Total Page:16

File Type:pdf, Size:1020Kb

Accelerate Your Mobile Apps for Android On The Developer Summit at ARM® TechCon™ 2013 Accelerate your Mobile Apps and Games for Android™ on ARM Matthew Du Puy! Software Engineer, ARM The Developer Summit at ARM® TechCon™ 2013 Presenter Matthew Du Puy! Software Engineer, ARM! ! Matthew Du Puy is a software engineer at ARM and is currently working to ensuring mobile app performance on the latest ARM technologies. Previously a self employed embedded systems software contractor working primarily on the Linux Kernel and a mountain climber.! ! Contact Details: ! Email: [email protected] Title: Accelerate Your Mobile Apps and Games for Android on ARM Overview: Learn to perform Android application and systems level analysis on Android apps and platforms using tools from Google, ARM, AT&T and others. Find bottlenecks in both SDK and NDK activities and learn different approaches to fixing those bottlenecks and better utilize platform technologies and APIs. Problem: This is not a desktop ▪ Mobile apps require special design considerations that aren’t always clear and tools to solve increasingly complex systems are limited! ▪ Animations and games drop frames! ▪ Networking, display, real time audio and video processing eat battery! ▪ App won’t fit in memory constraints Analysis ▪ Fortunately Google, ARM and many others are developing analysis tools and solutions to these problems! ▪ Is my app … ?! ▪ CPU/GPGPU bound! ▪ I/O or memory constrained! ▪ Power efficient! ▪ What can I do to fix it?# (short of buying everyone who runs my app# a Quad-core ARM® Cortex™-A15 processor # & ARM Mali™-T604 processor or Octo phone) In emerging markets, not everyone has access to the latest and greatest devices but they still want to game, shop, socialize and learn with their mobiles. You may consider this even if you think you app is efficient on modern devices. Analysis of Java SDK Android Apps ▪ Static analysis with SDK Lint tool! ▪ Dynamic analysis with DDMS! ▪ Allocation/heap! ▪ Process and thread utilization! ▪ Traceview (method) ! ▪ Network ! ▪ Hierarchy Viewer! ▪ Systrace But ask yourself these questions ▪ Is this performance bottleneck parallelizable?! ▪ Is this Java or Native?# Would it be better the# other way around?! ▪ Has this been done# before? Don’t reinvent the wheel.! ▪ Am I being smart with resources?! ▪ What version of Android should I target? Yes, Native is almost ALWAYS faster (what did you expect to hear from an ARM engineer?) BUT there are some cases where the context switch through JNI can be called so frequently for such small tasks that you thrash and undo the benefit. Even if you target android 2.2; you should use 4.1 for analysis as some of these tools only exist in JellyBean or have been greatly improved in it. New android devices buyers are likely running the latest and greatest and they are also, likely, new app buyers as well. Starting EASY! Static analysis: LINT Static slides in case live demo is not possible or working: It seems obvious to most, static analysis helps you avoid logic flaws and points out potentially hazardous data handling but Google has built a solid library of other issues, descriptions of the issue and even suggestions for fixing the problem. This is from SGTPuzzles, a free, opensouce game. You can try this at home. There are some allocations going on during the draw calls. Bad application. Bad. Static analysis: LINT This is from glTron, another open source game. Avoid type conversion between double and floats by using android specific math libraries like android.util.FloatMath instead of java.lang.Math calls Here you can see in the “Category” column, they’ve grouped analysis in terms of Performance, Security and Correctness amongst others Beyond static analysis# Dalvik Debug Monitor Server (DDMS) ▪ DDMS Thread analysis (like “top” but better) Fire up DDMS, select your android process and peer inside the process to see each thread it touches and how much time you spend in each thread. Here, again, is glTron, we can see we’re spending most of the time in the GLThread but this doesn’t tell us everything. We don’t know why we’re spending so much time there. Is it allocating frequently? Is it thrashing with frequently blocked calls? DDMS: Traceview# How much CPU time is each method consuming? ▪ Traceview (start method profiling button) Traceview allows you to see more information. You can view how much time is being spent in each Java method. You can drill down through children and up the parent tree and see how much CPU time each method is consuming. Try to identify a few key methods that are consuming most of the CPU. We can see most of these calls are related to rendering graphics, animations or signal processing related methods. Allocations and HEAP# are you allocating in a high frequency method? This is the allocation tracker. Find out if you’re making allocations in frequently run methods. I once saw a program (Google) that was allocating exception strings on the VSYNC pulse… allocating at 60 times per-second is a great way to ensure Dalvik wasting time doing Garbage collection. HEAP:# Is your app running out of memory? Older version of android limited the heap to 16MB per process. Just because things run smoothly on your fancy new device doesn’t mean they’ll run smoothly on all devices. This will give you a high level overview of how much memory you’re using in real time. If you suspect an activity is using too much memory at an instance, run to that point and cause a Garbage Collection manually with the button and see. Caveat, some methods for improving performance like multi-threading will consume more memory. Network Statistics ▪ Save battery, look for short spikes that can be delayed! ▪ TrafficStats API allows you to tag individual sockets !There is a built in network Statistics analyzer, it works fine but I’ll show you an even better (also free) tool called ARO later. By monitoring the frequency of your data transfers, and the amount of data transferred during each connection, you can identify areas of your application that can be made more battery-efficient. Generally, you should look for short spikes that can be delayed, or that should cause a later transfer to be pre-empted. To better identify the cause of transfer spikes, the TrafficStats API allows you to tag the data transfers occurring within a thread and its sockets Ever wonder if your popular ad supported app is caching ads, sending analytics and retrieving songs at the same time or simply running up the network stack and radio to grab ads on a timer regardless of other downloads? More on this later with Application Resource Optimizer (ARO open source project from AT&T) Adb shell DUMPsys ▪ With dumpsys you can check:! ▪ Event Hub State! ▪ Input Reader State! ▪ Input Dispatcher State! ▪ any number of other systems# e.g. dumpsys gfxinfo Dumpsys gfxinfo ▪ Drop dumpsys data columns in to a spreadsheet and visualize…# e.g. Will my animation drop frames? Here we can see an animation we’ve made in a java thread in blue. Then we stack the amount of time android spends processing the display list and swapping buffers. In a VSYNCed system, there are roughly 60 frames per second which means we have 15ms to get our animation frame drawn, processed and ready to be displayed. With this simple visualization from dumpsys data, we can see if we’re going to spend too much time drawing in our app and cause the system to drop a frame. This is just one example of what we can do with dumpsys data. Systrace ▪ I’ve done all I can to analyze inside my app but still can’t find the bottleneck.# # Systrace to# the rescue!# ▪ Systrace.py will generate a# 5 second system level snapshot# # As of Android 4.3, systrace.py has many more configuration options including configurable length traces (more than 5 sec now) Systrace# html5 page of info: Navigate with ‘w’a’s’d’ Systrace will show you a very high level view of what processes are occurring on the CPU and some information about what active threads are doing. E.g. this game glTron. We can see input events on the main thread (PID 29194) we can also see its child thread rendering and triggering the OpenGL updater and resulting effects on SufaceFlinger. We could zoom in and see if any of the parts of the system are blocked waiting for another part of the system. Here again, we can also see the VSYNC 60fps pulse. Other system profilers to consider: ▪ Chainfire PerfMon App - Free on XDA-Developers! ▪ Foreground App ! ▪ CPU! ▪ Disk I/O! ▪ Network I/O! ▪ From Qualcomm! ▪ Trepn Profiler App – overlay mode similar to PerfMon but can monitor Android Intents, log states, allows external control and power monitoring.! ▪ Adreno SDK and Profiler for profiling the Adreno GPU Analyzing native C/C++ (NDK) ▪ But I didn’t use the Java SDK to write my app! How do I analyze my already wicked fast native (or iOS app objective-C port) code?! ▪ What about the Linux kernel part of system analysis? ! ▪ Notes of caution! ▪ Applications that use NDK well will be faster and slicker! ▪ Ones that don’t will be cursed by unhappy users! ▪ If you build .so libraries for ARM, only ARM devices will be able to run your apps! ▪ Fortunately not many Android Platforms that aren’t ARM! ▪ Good use of the NDK will narrow the difference# between high and low end devices! ▪ Moving inefficient code to Native doesn’t magically# make it better code DS-5 CE for Android App Developers DS-5 CE ▪ Friendly, Reliable App Debugger! Project Manager ▪ Powerful graphical user interface! Application Performance ▪ ADB integration for native debug! Debugger Analyzer ▪ Java* and native debug in the same IDE!
Recommended publications
  • Going from Python to Guile Scheme a Natural Progression
    Going from Python to Guile Scheme A natural progression Arne Babenhauserheide February 28, 2015 Abstract After 6 years of intense Python-Programming, I am starting into Guile Scheme. And against all my expec- tations, I feel at home. 1 2 The title image is built on Green Tree Python from Michael Gil, licensed under the creativecommons attribution license, and Guile GNU Goatee from Martin Grabmüller, Licensed under GPLv3 or later. This book is licensed as copyleft free culture under the GPLv3 or later. Except for the title image, it is copyright (c) 2014 Arne Babenhauserheide. Contents Contents 3 I My story 7 II Python 11 1 The Strengths of Python 13 1.1 Pseudocode which runs . 13 1.2 One way to do it . 14 1.3 Hackable, but painfully . 15 1.4 Batteries and Bindings . 17 1.5 Scales up . 17 2 Limitations of Python 19 2.1 The warped mind . 19 2.2 Templates condemn a language . 20 3 4 CONTENTS 2.3 Python syntax reached its limits . 21 2.4 Time to free myself . 23 IIIGuile Scheme 25 3 But the (parens)! 29 4 Summary 33 5 Comparing Guile Scheme to the Strengths of Python 35 5.1 Pseudocode . 36 General Pseudocode . 36 Consistency . 37 Pseudocode with loops . 40 Summary . 44 5.2 One way to do it? . 44 5.3 Planned Hackablility, but hard to discover. 50 Accessing variables inside modules . 51 Runtime Self-Introspection . 51 freedom: changing the syntax is the same as reg- ular programming . 58 Discovering starting points for hacking . 60 5.4 Batteries and Bindings: FFI .
    [Show full text]
  • Encouragez Les Framabooks !
    Encouragez les Framabooks ! You can use Unglue.it to help to thank the creators for making Histoires et cultures du Libre. Des logiciels partagés aux licences échangées free. The amount is up to you. Click here to thank the creators Sous la direction de : Camille Paloque-Berges, Christophe Masutti Histoires et cultures du Libre Des logiciels partagés aux licences échangées II Framasoft a été créé en novembre 2001 par Alexis Kauffmann. En janvier 2004 une asso- ciation éponyme a vu le jour pour soutenir le développement du réseau. Pour plus d’infor- mation sur Framasoft, consulter http://www.framasoft.org. Se démarquant de l’édition classique, les Framabooks sont dits « livres libres » parce qu’ils sont placés sous une licence qui permet au lecteur de disposer des mêmes libertés qu’un utilisateur de logiciels libres. Les Framabooks s’inscrivent dans cette culture des biens communs qui, à l’instar de Wikipédia, favorise la création, le partage, la diffusion et l’ap- propriation collective de la connaissance. Le projet Framabook est coordonné par Christophe Masutti. Pour plus d’information, consultez http://framabook.org. Copyright 2013 : Camille Paloque-Berges, Christophe Masutti, Framasoft (coll. Framabook) Histoires et cultures du Libre. Des logiciels partagés aux licences échangées est placé sous licence Creative Commons -By (3.0). Édité avec le concours de l’INRIA et Inno3. ISBN : 978-2-9539187-9-3 Prix : 25 euros Dépôt légal : mai 2013, Framasoft (impr. lulu.com, Raleigh, USA) Pingouins : LL de Mars, Licence Art Libre Couverture : création par Nadège Dauvergne, Licence CC-By Mise en page avec LATEX Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution 2.0 France.
    [Show full text]
  • GNU Stow Manual
    Stow 2.3.1 Managing the installation of software packages Bob Glickstein, Zanshin Software, Inc. Kahlil Hodgson, RMIT University, Australia. Guillaume Morin Adam Spiers This manual describes GNU Stow version 2.3.1 (28 July 2019), a program for managing farms of symbolic links. Software and documentation is copyrighted by the following: c 1993, 1994, 1995, 1996 Bob Glickstein <[email protected]> c 2000, 2001 Guillaume Morin <[email protected]> c 2007 Kahlil (Kal) Hodgson <[email protected]> c 2011 Adam Spiers <[email protected]> Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section enti- tled \GNU General Public License" is included with the modified manual, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. i Table of Contents 1 Introduction::::::::::::::::::::::::::::::::::::: 1 2 Terminology ::::::::::::::::::::::::::::::::::::: 3 3 Invoking Stow ::::::::::::::::::::::::::::::::::: 4 4 Ignore Lists ::::::::::::::::::::::::::::::::::::: 7 4.1 Motivation
    [Show full text]
  • Embedded Operating Systems
    7 Embedded Operating Systems Claudio Scordino1, Errico Guidieri1, Bruno Morelli1, Andrea Marongiu2,3, Giuseppe Tagliavini3 and Paolo Gai1 1Evidence SRL, Italy 2Swiss Federal Institute of Technology in Zurich (ETHZ), Switzerland 3University of Bologna, Italy In this chapter, we will provide a description of existing open-source operating systems (OSs) which have been analyzed with the objective of providing a porting for the reference architecture described in Chapter 2. Among the various possibilities, the ERIKA Enterprise RTOS (Real-Time Operating System) and Linux with preemption patches have been selected. A description of the porting effort on the reference architecture has also been provided. 7.1 Introduction In the past, OSs for high-performance computing (HPC) were based on custom-tailored solutions to fully exploit all performance opportunities of supercomputers. Nowadays, instead, HPC systems are being moved away from in-house OSs to more generic OS solutions like Linux. Such a trend can be observed in the TOP500 list [1] that includes the 500 most powerful supercomputers in the world, in which Linux dominates the competition. In fact, in around 20 years, Linux has been capable of conquering all the TOP500 list from scratch (for the first time in November 2017). Each manufacturer, however, still implements specific changes to the Linux OS to better exploit specific computer hardware features. This is especially true in the case of computing nodes in which lightweight kernels are used to speed up the computation. 173 174 Embedded Operating Systems Figure 7.1 Number of Linux-based supercomputers in the TOP500 list. Linux is a full-featured OS, originally designed to be used in server or desktop environments.
    [Show full text]
  • CLE Materials
    Software Freedom Law Center Fall Conference at Columbia Law School CLE materials October 30, 2015 License Compliance Dispute Resolution Software Freedom Law Center October 30, 2015 1) Software Freedom Law Center: Guide to GPL Compliance 2nd Edition 2) Free Software Foundation: Principles for Community-Oriented GPL Enforcement 3) Terry J. Ilardi: FOSS Compliance @ IBM 15 Years (and count- ing) Software Freedom Law Center Guide to GPL Compliance 2nd Edition Eben Moglen & Mishi Choudhary October 31, 2014 Contents TheWhat,WhyandHowofGNUGPL . 3 CopyrightandCopyleft . 4 Concepts and License Mechanics of Copyleft. 6 LicenseProvisionsAnalyzed. 10 GPLv2............................... 10 GPLv3............................... 18 GPLSpecialExceptionLicenses . 31 AGPL............................... 31 LGPL ............................... 34 Understanding Your Compliance Responsibilities . 41 WhoHasComplianceObligations? . 41 HowtoMeetComplianceObligations . 43 TheKeytoComplianceisGovernance . 45 PrinciplesofPreparedCompliance . 47 HandlingComplianceInquiries . 48 Appendix1: OfferofSourceCode . 52 References................................ 56 This document presents the legal analysis of the Software Freedom Law Center and the authors. This document does not express the views, intentions, policy, or legal analysis of any SFLC clients or client organizations. This document does not constitute legal advice or opinion regarding any specific factual situation or party. Specific legal advice should always be sought from qualified legal counsel on the application
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • Libvdeplug Agno: Ethernet Encryption Su Reti Virtuali
    Alma Mater Studiorum · Universita` di Bologna SCUOLA DI SCIENZE Corso di Laurea in Informatica Libvdeplug agno: Ethernet encryption su reti virtuali Relatore: Presentata da: Chiar.mo Prof. Michele Nalli Renzo Davoli 19 dicembre 2018 Per la mia famiglia, che ha sempre creduto in me. Introduzione In questo elaborato viene descritto il processo di sviluppo di libvdeplug agno: un modulo crittografico per VDE4 che permette di cifrare il traffico di una rete Ethernet virtuale VDE. Il capitolo 1 introduce il problema che libvdeplug agno mira a risolvere e dar`aun idea delle attuali tecniche di Ethernet encryption. Nel capitolo 2 si descrivono i requisiti che la soluzione deve possedere per essere soddisfacente e si introducono alcuni strumenti che saranno utilizzati nell'im- plementazione. Nel capitolo 3 saranno giustificate le scelte implementative fatte con particolare attenzione alle operazioni crittografiche. Nel capitolo 4 si discu- te la sicurezza complessiva del modulo sviluppato, sono presentati i risultati di alcuni test di performance e vengono suggeriti alcuni futuri sviluppi. Il codice sviluppato `estato rilasciato nel repository ufficiale [1]. Al momento di scrittura dell'elaborato esso non si trova ancora nel master branch, bens`ıin altri branch sperimentali. i Indice Introduzione i 1 Stato dell'arte 1 1.1 VDE . .1 1.1.1 VDE2 . .1 1.1.2 VDE4 . .2 1.1.3 VXVDE . .4 1.1.4 VXVDEX . .5 1.1.5 Fornire accesso alla rete reale . .5 1.2 Media Access Control Security . .6 1.2.1 Struttura hop-by-hop . .6 1.2.2 Formato frame . .6 1.2.3 Servizi di sicurezza supportati .
    [Show full text]
  • Open Technology Development (OTD): Lessons Learned & Best Practices for Military Software
    2011 OTD Lessons Learned Open Technology Development (OTD): Lessons Learned & Best Practices for Military Software 2011-05-16 Sponsored by the Assistant Secretary of Defense (Networks & Information Integration) (NII) / DoD Chief Information Officer (CIO) and the Under Secretary of Defense for Acquisition, Technology, and Logistics (AT&L) This document is released under the Creative Commons Attribution ShareAlike 3.0 (CC- BY-SA) License. You are free to share (to copy, distribute and transmit the work) and to remix (to adapt the work), under the condition of attribution (you must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work)). For more information, see http://creativecommons.org/licenses/by/3.0/ . The U.S. government has unlimited rights to this document per DFARS 252.227-7013. Portions of this document were originally published in the Software Tech News, Vol.14, No.1, January 2011. See https://softwaretechnews.thedacs.com/ for more information. Version - 1.0 2 2011 OTD Lessons Learned Table of Contents Chapter 1. Introduction........................................................................................................................... 1 1.1 Software is a Renewable Military Resource ................................................................................ 1 1.2 What is Open Technology Development (OTD) ......................................................................... 3 1.3 Off-the-shelf (OTS) Software Development
    [Show full text]
  • New Trends and Issues Proceedings on Humanities and Social Sciences
    New Trends and Issues Proceedings on Humanities and Social Sciences Volume 7 No 3 (2020) 48-70 www.prosoc.eu Selected Papers of 8th World Conference on Educational Technology Researches (WCETR-2020) 20 – 22 March 2020 Richmond Hotel Congres Center Kusadası (Ephesus) Turkey Implementing online questionnaires and surveys by using mobile applications Ramiz Salama*, Near East University, Department of Computer Engineering, Nicosia, Cyprus https://orcid.org/0000-0001-8527-696X Huseyin Uzunboylu, Near East University, Department of Curriculum and Instruction, Nicosia, Cyprus https://orcid.org/0000-0002-6744-6838 Mohammad Abed El Muti, Near East University, Department of Computer Engineering, Nicosia, Cyprus Suggested Citation: Salama, R., Uzunboylu, U. & El Muti, M. A. (2020). Implementing online questionnaires and surveys by using mobile applications. New Trends and Issues Proceedings on Humanities and Social Sciences. 7(2), 48–70. Available from: www.prosoc.eu Received from December 5, 2020; revised from January 21, 2020; accepted from 10 March, 2020. Selection and peer review under responsibility of Prof. Dr.HuseyinUzunboylu, Higher Education Planning, Supervision, Accreditation and Coordination Board, Cyprus. ©2020 BirlesikDunyaYenilikArastirmaveYayincilikMerkezi. All rights reserved. Abstract Online questionnaires and surveys are one of the most efficient methods that are used by people all around the world for statistics, to ask questions and to evaluate something; however, this is because of its benefits, like reducing time, getting real answers apart from manipulation or fake results, and it is easy for everyone to use. There are a lot of online survey forms found on Google and using these e-forms are easy; all that one has to do is open the site, register through email and then choose the type of survey one wants to fill in.
    [Show full text]
  • S Q X W W X А V А
    RETRO7 Cover UK 09/08/2004 12:20 PM Page 1 ❙❋❙P✄❍❇N❋❙ ❉PNNP❊P❙❋•❚❋❍❇•❖❏❖❋❖❊P•❇❇❙❏•❚❏❖❉M❇❏❙•❇❉P❙❖•& NP❙❋ * ❏❚❚❋✄❚❋❋❖ * ❙❋❙P✄❍❇N❋❙ £5.99 UK • $13.95 Aus $27.70 NZ ISSUE SEVEN I❋✄❇❇❙❏✄❚✄G❇N❏M ◗P❋❙✄❏IP✄I❋✄◗❙❏❉❋? ❉M❇❚❚❏❉✄❍❇N❏❖❍✄❋◗P✄L I❋✄❚IP✄& ❏❚✄❚❇❙✎✄N❇I❋✄❚N❏I ❉P❏❖✏P◗✄❉P❖❋❙❚❏P❖❚ I❏❉I✄IPN❋✄❋❙❚❏P❖✄❇❚✄❈❋❚? ◗M❚✄MP❇❊❚✄NP❙❋✢ I❋✄M❋❋M✄ ❚P❙✄❉P❖❏❖❋❊✎✄ L❋❏I✄❉❇N◗❈❋MM9✎ ❚✄❊❋❚❋❙✄❏❚M❇❖❊✄❊❏❚❉❚ >SYNTAX ERROR! >MISSING COVERDISC? <CONSULT NEWSAGENT> & ❇❙❉❇❊❋✄I❖✄◗❊❇❋ 007 Untitled-1 1 1/9/06 12:55:47 RETRO7 Intro/Hello 11/08/2004 9:36 PM Page 3 hello <EDITORIAL> >10 PRINT "hello" Editor = >20 GOTO 10 Martyn Carroll >RUN ([email protected]) Staff Writer = Shaun Bebbington ([email protected]) Art Editor = Mat Mabe Additonal Design = Roy Birch + Da Beast + Craig Chubb Sub Editors = Rachel White + Katie Hallam Contributors = Richard Burton + David Crookes Jason Darby + Richard Davey Paul Drury + Ant Cooke Andrew Fisher + Richard Hewison Alan Martin + Robert Mellor Craig Vaughan + Iain "Plonker" Warde <PUBLISHING & ADVERTISING> Operations Manager = Debbie Whitham Group Sales & Marketing Manager = Tony Allen hello Advertising Sales = Linda Henry elcome to another horseshit”, there must be a others that we are keeping up Accounts Manager = installment in the Retro thousand Retro Gamer readers our sleeves for now. We’ve also Karen Battrick WGamer saga. I’d like to who disagree. Outnumbered and managed to secure some quality Circulation Manager = Steve Hobbs start by saying a big hello to all outgunned, my friend. coverdisc content, so there’s Marketing Manager = of those who attended the Classic Anyway, back to the show.
    [Show full text]
  • EARMO: an Energy-Aware Refactoring Approach for Mobile Apps
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. X, NO. X, SEPTEMBER 2016 1 EARMO: An Energy-Aware Refactoring Approach for Mobile Apps Rodrigo Morales, Member, IEEE, Ruben´ Saborido, Member, IEEE, Foutse Khomh, Member, IEEE, Francisco Chicano, and Giuliano Antoniol, Senior Member, IEEE Abstract—The energy consumption of mobile apps is a trending topic and researchers are actively investigating the role of coding practices on energy consumption. Recent studies suggest that design choices can conflict with energy consumption. Therefore, it is important to take into account energy consumption when evolving the design of a mobile app. In this paper, we analyze the impact of eight type of anti-patterns on a testbed of 20 android apps extracted from F-Droid. We propose EARMO, a novel anti-pattern correction approach that accounts for energy consumption when refactoring mobile anti-patterns. We evaluate EARMO using three multiobjective search-based algorithms. The obtained results show that EARMO can generate refactoring recommendations in less than a minute, and remove a median of 84% of anti-patterns. Moreover, EARMO extended the battery life of a mobile phone by up to 29 minutes when running in isolation a refactored multimedia app with default settings (no WiFi, no location services, and minimum screen brightness). Finally, we conducted a qualitative study with developers of our studied apps, to assess the refactoring recommendations made by EARMO. Developers found 68% of refactorings suggested by EARMO to be very relevant. Index Terms—Software maintenance; Refactoring; Anti-patterns; Mobile apps; Energy consumption; Search-based Software Engineering F 1 INTRODUCTION URING the last five years, and with the exponential class, which is a large and complex class that centralizes D growth of the market of mobile apps [1], software most of the responsibilities of an app, while using the engineers have witnessed a radical change in the landscape rest of the classes merely as data holders.
    [Show full text]
  • Aslinux Desktop
    ASLinux Desktop La distribución Linux completa para escritorios ¿Qué es ASLinux? ASLinux es la línea de negocio de Activa Sistemas como fabricante de productos Linux. Se trata de una plataforma Linux resultante de la experiencia de años de trabajo en el diseño, desarrollo, implantación y distribución de productos y soluciones Linux de terceros. Existen en la actualidad varios centenares de distribuciones diferentes, dirigidas a diversos mercados, tipos de usuarios o propósitos. A pesar de tanta oferta, en la actualidad es difícil encontrar una opción que resuelva las necesidades de cualquier usuario hispanohablante. Por ello, Activa Sistemas se planteó como reto hace algunos años el desarrollo de su propia distribución Linux, esfuerzo culminado con la presentación del primer producto de la gama: ASLinux Desktop. ASLinux Desktop ASLinux Desktop es una distribución Linux dirigida a PCs de escritorio, ya sean estaciones de trabajo, puestos corporativos u ordenadores domésticos, y a usuarios con cualquier nivel de experiencia tanto con ordenadores como con Linux. Disponible para procesadores Intel y AMD de 32 bits, ASLinux Desktop ofrece un escritorio completo, estable e intuitivo que facilita el acceso a Linux y que incluye todas las posibilidades que cualquier usuario puede demandar: ofimática, Internet, multimedia, educación, ocio, etc, junto con los más completos sistemas de seguridad, como un cortafuegos personal, un analizador de virus de Windows y un filtro de correo basura. En definitiva, ASLinux Desktop combina la robustez y estabilidad de Linux, la potencia y versatilidad de Debian y la amigabilidad y usabilidad del escritorio gráfico KDE. Avda. Innovación, Edif. Convención, mod. 310 - 41020 - Sevilla – Tlf: 954076060 - Fax: 955155000 Email: [email protected] - Web: www.activasistemas.com Pag.
    [Show full text]