Showing posts with label tracker. Show all posts
Showing posts with label tracker. Show all posts

Thursday, September 21, 2017

Getting Santa Tracker Into Shape

Getting Santa Tracker Into Shape


















Posted by Sam Stern, Developer Programs Engineer





Santa Tracker is a holiday tradition at Google.  In addition to bringing seasonal joy to millions of users around the world, its a yearly testing ground for the latest APIs and techniques in app development.  Thats why the full source of the app is released on Github every year.






In 2016, the Santa team challenged itself to introduce new content to the app while also making it smaller and more efficient than ever before.  In this post, you can read about the road to a more slimmer, faster Santa Tracker.


APK Bloat



Santa Tracker has grown over the years to include the visual and audio assets for over a dozen games and interactive scenes.  In 2015, the Santa Tracker APK size was 66.1 MB.






The Android Studio APK analyzer is a great tool to investigate what made the 2015 app so large.





Screenshot from 2017-02-01 11:59:09.png







First, while the APK size is 66.1 MB, we see that the download size is 59.5MB! The majority of that size is in the resources folder, but assets and native libraries contribute a sizable piece.






The 2016 app contains everything that was in the 2015 app while adding four completely new games.  At first, we assumed that making the app smaller while adding all of that would be impossible, but (spoiler alert!) here are the final results for 2016:





Screenshot from 2017-02-01 12:06:23.png







The download size for the app is now nearly 10MB smaller despite the addition of four new games and a visual refresh. The rest of this section will explore how we got there.


Multiple APK Support on Google Play with APK Splits



The 2015 app added the "Snowdown" game by Googles Fun Propulsion Labs team.  This game is written in C++, so its included in Santa Tracker as a native library.  The team gave us compiled libraries for armv5, armv7, and x86 architectures.  Each version was about 3.5MB, which adds up to the 10.5MB you see in the lib entry for the 2015 APK.






Since each device is only using one of these architectures, two thirds of the native libraries could be removed to save space - the tradeoff here is that we�ll publish multiple APKs.  The Android gradle build system has native support for building an APK for each architecture (ABI) with only a few lines of configuration in the apps build.gradle file:







ext.abiList = [armeabi, armeabi-v7a, x86]


android {


   


   // ...


   splits {


       abi {


           // Enable ABI splits


           enable true


           // Include the three architectures that we support for snowdown


           reset()


           include(*abiList)


           // Also build a "universal" APK that will run on any device


           universalApk true


       }


   }


}








Once splits are enabled, each split needs to be given a unique version code so that they can co-exist in the Play Store:






// Generate unique versionCodes for each APK variant: ZXYYSSSSS


//   Z is the Major version number


//   X is the Minor version number


//   YY is the Patch version number


//   SSSS is information about the split (default to 0000)


// Any new variations get added to the front


import com.android.build.OutputFile;


android.applicationVariants.download file now

Read more »

Wednesday, August 30, 2017

A New Issue Tracker for our AOSP Developers

A New Issue Tracker for our AOSP Developers



Posted by Sandie Gong, Developer Relations Program Manager & Chris Iremonger, Android Technical Program Manager



Like many other issue trackers at Google, were upgrading our Android Open
Source Project (AOSP) issue tracking system to Issue Tracker. We are
hoping to facilitate a better collaboration between our developers and our
Android product teams by using a tool we use internally at Google to track bugs
and feature requests during product development.




Starting today, all issues formerly at code.google.com/p/android/issues
will migrate to Issue Tracker under the Android
Public Tracker component. You may have noticed that we are already using the
new tool to collect feedback on the O Developer
Preview!



What has been migrated


  • All
    open and closed issues youve filed

  • All
    your starred issues

  • Allissues youve commented on







Getting started with Issue Tracker






You can learn more about navigating our Issue Tracker from our developer documentation.
By default, Issue Tracker displays only the issues assigned to you. You can
easily change
that to show a hotlist of your choice, a bookmark group, or a saved search.
You can also adjust
notification settings by clicking the gear icon in the top right corner and
selecting Settings.




The mappings in Issue Tracker are also slightly different than code.google.com
so make sure to check out Life of a Bug to
learn more about what the various statuses mean.













Searching for component specific issues






Opening a code.google.com issue link will automatically redirect you to the new
system. Weve cleaned up some of the spam, but youll be able to find all of the
other issues from code.google.com in Issue Tracker, including any
issue youve reported, commented on, or starred.




You can view all reported Android issues in the Android
Public Tracker component and drill down to see reported issues for specific
categories of issues, such as Tools and Support Libraries, by searching
for specific components.



Filing a bug or feature request



Before filing a new issue, please check if it is already reported in the issues list. Let us know what issues are important to you by starring
an existing issue.




Submitting a new issue is easy. Once you click "Create Issue", search for the
appropriate component for your issue. Alternatively, you can just follow the
correct issue creation link for each component listed in Report Bugs.




Heres some helpful links to get you started!
























Topic


Relevant Links


Navigating and creating issues in the Android component


  • All
    open issues under the Android Public tracker component

  • Android
    issues youve reported, commented or starred

  • How to file a
    new Android bug or feature request

  • What happens
    after you file a bug in the AOSP Issue Tracker



Navigating Google Issue Tracker


  • Google Issue Tracker
    developer documentation

  • Changing
    your Issue Tracker homepage

  • Searching
    within Issue Tracker



Google Issue Tracker announcements for other products


  • Blog
    post announcing the Cloud Platform move to Issue Tracker

  • Blog
    post announcing the GSuite move to Issue Tracker




download file now

Read more »