Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Before you buy Android for Unity, ARMv6 and what you should know.

Discussion in 'Android' started by Argenex, Jan 11, 2011.

  1. Argenex

    Argenex

    Joined:
    Jan 7, 2011
    Posts:
    34
    Before you buy Android for Unity, ARMv6 and what you should know.

    The purpose of this post is to inform potential Android developers of the issues they will face
    when developing from Unity for Android

    ARM architecture:
    About the processors phones use.
    http://en.wikipedia.org/wiki/ARM_architecture

    ARMv? and why is it important?
    Quite simply it is the Processor used in phones. It is important to note
    that the differences between ARMv6 and ARMv7 is effiency and the ability
    to run many things on your phone within an application. The difference is
    substantial, doubled, and tripled in some cases.

    Unity only publishes to ARMv7, and maybe ARMv6 with VFP (Vector Floating Point) phones.
    How can you find this information?

    It is listed here:
    http://unity3d.com/unity/system-requirements.html
    However it is NOT listed here:
    http://unity3d.com/unity/publishing/android

    How can we tell what phone is what?
    Possibly the quickest answer to this question is: 4G = ARMv7+

    You MIGHT be able to tell which phone is ARMv6 or v7 Here (Though I find it terribly confusing
    and several phones that have been out for 6+ months aren't on this list):
    http://en.wikipedia.org/wiki/ARM_architecture#Example_applications_of_ARM_cores

    And you MIGHT be able to tell which phone is which here (Oddly enough thats at FireFox's Dev Site):
    https://wiki.mozilla.org/Mobile/Platforms/Android#System_Requirements

    What phones are currently the most accessable or most widly used by people in the market?
    That is a good question and a hard one to answer. There doesn't seem to be a really simple
    way to find out at the moment. Currently 01/11/2011 there are no less than 40 phones which
    have been sold in the last year and are currently sold that all have ARMv6. A handful of these
    have VFP. There are about 10 phones on the market, (some that have been available since October of 2010)
    that are ARMv7, and 4 tablets. These are the 'latest and greatest' units and won't fully be integrated
    into the market for another year at least.
    Other than trying before buying all 40 of the ARMv6 phones, telling which ones will work with Unity, the simplest
    answer is the ARMv7 phones.



    How long until those ARMv6 phones are no longer in the market bottle-necking our publishing?
    ARM is all the way up to ARM11 and there is talk already of a phone being released with ARM9.
    But our concern as developers is simply, how much of the market can we rely upon that our
    software will work?
    Typically it is better to develop for the largest common use consumer,
    not the latest and greatest consumer who has to have the newest thing on the market.


    In short, until those ARMv6 phones are pulled from availability to consumers, you have to project
    that 2 years from the day they stop offering the ARMv6 phones is when the market will
    start to balance more towards ARMv7 and above. This will take a while as alot of those phones that
    are ARMv6, are offered for free to consumers! It's simple really, a consumer is going to go
    after "Get a free smartphone" versus dropping 200+ dollars for the ARMv7 phone.

    How can we tell our consumer, or can we detect which phone they are using so we don't generate
    thousands of dis-satisfied potential customers?

    Unfortuntly at this time there doesn't seem to be a method via the Android market to detect if the
    phone is ARMv6 or 7 BEFORE they download your app. All you can really do is include it in your
    description, alter the pop-up that they will receive when they try to run your app;
    "Your Phone's hardware is incompatable, the app has been closed" (or something similar)
    and hope to point them elsewhere and apologize for wasting thier time!


    The wall I ran into with Unity
    (Also known as "Don't make the same mistake I made!!")

    It was in November that I made the decision to Purchase Unity and focus on Android development.
    I performed what I beleived was the best dilligence in making sure I knew
    every possible requirement for publishing to the Android.
    Short of finding the Android page on Unity
    http://unity3d.com/unity/publishing/android
    The Engine Pages
    http://unity3d.com/unity/engine/
    And all of the other pages linked when reading the website, I never encountered
    the page that says specifically, to look for ARMv7.
    http://unity3d.com/unity/system-requirements.html

    Also Unity's setting was still set to the "Universal (experimental) option so my test app
    'appeared' to be working just fine on any phone I tried.
    I had run several smaller apps built in Eclipse as well as published directly my test app
    to the emulator, again everything 'appeared' to be functioning just fine.

    When I went to try and troubleshoot why sound wasn't working on the development test phone
    was when I encountered the speed bump of ARMv6. After alot of google searches I finally
    found a link to the system-requirements page of Unity within a forum posting:
    http://forum.unity3d.com/threads/67883-Android-Sound

    In fact, if the sound had worked
    from the start, I would have never figured out the differences in ARM versions and why they would
    matter.

    As it happens, this was exactly 2 days after I was locked into keeping the phone that I received, the LG

    Optimus S, and 7 days after purchasing full licensing for Unity Android.
    Talk about taking a punch to the face. Now I have a phone that is useless for my purposes
    for the next two years!

    So what's the deal?
    The deal is I really like Unity, I adore the heck out of it. It's not only affordable
    for artists and game designers, but it allows you to quickly and easily publish to multiple
    platforms. To be frank it makes all other game engine options look stupid. That being
    said it's a no brainer on sticking with Unity. Mind you this is coming from someone who
    first wrote in Basic on the Atari 2600 28 years ago.

    The problem is, publishing to Android won't really be solid for another year. Consumers get
    locked into 2 year contracts, in the same way I got locked in, and the most common will be
    the free phones and the cheaper (50$) for the next 2 years. Without a way to dumbdown your app, or modify

    the published one within Eclipse to work for ARMv6, that is potentially a GIANT chunk of current market

    share which will be LOST to a Unity>Android developer.
    It's kinda like saying "We've got the BEST breed of horse from the TOP Sires available, but we're
    going to knock its back two legs off just before it leaves the gate. Don't worry it will run just
    fine down the track."

    To be fair however, Unity is making a good choice as the effiency of ARMv7 and above far outshines
    the ineffiecncy of ARMv6, even with VFP. So the choice made here is to get the awesomeness of Unity

    working with less headache. Thumbs up on that one.

    How can we fix this?
    Unity:
    Unity's already taken a stand last October that they are focused On ARMv7.
    A standing list that is easily accessible, in fact right here on this very page:
    http://unity3d.com/unity/publishing/android
    of a few things;
    Stating ARMv7 only and linking to what ARMv7 is, its advantages (performs much much better, etc)
    A list or a link to an active list of phones that are ARMv7+ and compatable.
    A method to repackage your app via Eclipse or hooks that can be written by hand in the AndroidSDK for the

    following:
    Detect which ARM a consumer has during install (More on Android Market really)
    Dumbing down your APP for ARMv6 (Maybe we can strip it?)
    External linking to external scripts that will allow coding via the SDK before packaging by Unity. This

    sounds like madness but what the heck.
    Make Unity Sales Reps aware of this difference when a potential buyer calls. Several phone calls
    and not a single sales rep even knew what ARM was at all.

    Android Market:
    We need to be able to check if our app will work on thier phone. That's it. If not we shuffle them
    to an app that will work or apologize humbly and give them free smores.

    Android Developers:
    Really you would have to start from scratch and code your app from dirt to diamond and lose all of the

    wonderful engine use from Unity to get your app working on ARMv6. It is possible, there are tons of apps
    that work just fine on ARMv6 without VFP that have music, sound fx, and complex AI all running at the same
    time. This option is to not use Unity but create your own engine, in effect. (OUCH!)
    An example of this accomplishment would be Pocket Legends and thier SpaceTime Engine.
    http://www.spacetimestudios.com/content.php?5-Tech
    Runs just fine on ARMv6 phones.

    The Community:
    Create a standing list of phones that are ARMv6 and ARMv7. The wikipedia page is confusing at best and
    not up to date. Also finding a Firefox development website for such a list is kinda hinky.

    Find out which Android phones are used the most and keep track of it. This is an ongoing project
    and something I myself have to check daily to see if I can actually find anything of use.


    Conclusion

    Hopefully this posting will help guide folks better, prevent confusion, and help the android market grow
    better. Onward and upward!

    Where this is posted:
    ARMv6 Android Support
    (Yes Unity has already taken a stand on ARMv7+, but what the heck one can dream right?)
    http://feedback.unity3d.com/forums/15792-unity/suggestions/1368831-armv6-android-support

    Android Market ARM Detection
    http://www.google.com/support/forum/p/Android+Market/thread?tid=25a80c0968946087&hl=en

    Before you buy Android for Unity, ARMv6 and what you should know.
    @ Android Forums:
    http://androidforums.com/applicatio...y-armv6-what-you-should-know.html#post2124617
     
  2. SkipKickCrash

    SkipKickCrash

    Joined:
    Oct 17, 2010
    Posts:
    80
    Thanks for all the info.
     
  3. Gl0r

    Gl0r

    Joined:
    Sep 29, 2010
    Posts:
    15
    Thanx a lot Argenex! You are quite right. If I knew all this before... :)
     
  4. svenskefan

    svenskefan

    Joined:
    Nov 26, 2008
    Posts:
    282
    Thanks for the info.
     
  5. PolyMad

    PolyMad

    Joined:
    Mar 19, 2009
    Posts:
    2,285
    Great analysis.

    True this looks dark but I must say I found A LOT of ARM7 phones and tablets being release already along these beginning 2011 months, I followed Engadget continuously on purpose and checked a lot of the stuff.

    So, what is written is true but I don't agree that the market will be so ARM6 saturated this year, my opinion is that ARM7 will instead explode this year, and for the end of 2011 we'll not see any ARM6 being sold anymore (or nearly).

    Of course, many people having a ARM6 phone will remain unreachable... that's the slice of market we'll not be able to reach until 2012 (if the world will not end!) but I think the Unity/Android/ARM7 market is large enough anyway to live on it... for now at least. I mean, before the Big Ones will start the aggression and the rest of the world will start uploading crapapps into it.

    Last but not least, Erique wrote (if I remember well) that Android Market is already filtering based on ARM architecture so we shouldn't worry about that: an ARM6 phone shouldn't see our game anyway and in fact I have some friends that didn't find an experimental app on the market using HTC Hero and another ARM6 mobile (can't remember the model now).
     
    Last edited: Jan 19, 2011
  6. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,577
    heh, this explains the download difference between my iphone and android apps. even the free ones.

    I see postings constantly of how many more androids are sold than iphones lately, but they just don't correlate on the store.
    Iphone apps sell around 10x more than android. It just didn't make sense until I read this article.

    Is it really that impossible to allow for armv6? i know tons of people with an older phone that won't be updating for who knows.
     
  7. Santino

    Santino

    Joined:
    Dec 19, 2010
    Posts:
    12
    Thanks for this info. at first I thought oh no... but then I went to find out which processor my desire HD had... whooo haaa I did make the right choice after all. I was going to buy the older desire which wont work with unity.

    beside me feeling good about about my decision, I think this is a good decision by unity. Android phones have been doing ok on the sales side but now I think we are going to see a real boom in sales this year, a bit like china's economy. From what I have seen on android marketplace, I was shocked to se so much crap.

    It's time for us to bring out 3d apps/ games usin unity to compete with iphone standards.

    Now is a great time to take on the big boys :)
     
  8. bigdaddio

    bigdaddio

    Joined:
    May 18, 2009
    Posts:
    220
    there is a huge difference in the consumers when it comes to apps. Android users are less likely than iPhone users to download apps and significantly less likely to purchase apps. That's why angry birds is ad supported on android. Also lots of phones they count as android phones are locked up and not truly androids in the sense we think of.
     
    Last edited: Feb 14, 2011
  9. legion

    legion

    Joined:
    Feb 9, 2011
    Posts:
    174
    From my research i have done this is just partially true, yes they might not be quite as willing to pay for apps but the difference is just a few % and also those who do buy is prepared to pay more it seems. Also the Android market is growing faster than iOs so the Android market will have more users which most likely will make this difference obsolete.

    And also if Angry birds would had actually set their price to a more proper one, ie 1.99 - 2.99 it would most likely have generated more money, and it would had sold on Android aswell. Dont take what one game does as a fact for the entire market.
     
  10. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    But you ignore one fact: how large is that share per hardware type?
    Because t its also fragmenting worlds faster than iOS and Google does not seem to be interested to get this problem under control any time soon.
    iOS gives you 1 -2 new small devices and about 1 large device a year.

    Android gives you that per 2-3 months which is faster than the production cycle for larger games.
    These different platforms are not "same performance just different manufacturer", actually they do not even use the same rendering styles (tile based rendering on SGX vs standard desktop rendering approaches on tegra), which makes optimization very ugly and also means that you must buy significantly more hardware to ensure to really support them with good performance which thanks to the lack of "iTouch" counterparts that cost 200-300 bucks cost you a lot due to the $500++ per device. I know enough here that already moaned due to the 1 device per year on iOS, I doubt the will be all to happy if these devices on android cost twice as much and might need to be bought even more regularly due to the fragmentation spread and OS version spread.

    Additionally the "bottom half" (cheap half, the more sold half) of the devices base on hardware that could compete with iphone 3g-3gs but not with what you expect in 2011 and see on the competitors platforms and on the upper half of the android devices provide either ...

    Its a fast growing platform as whole, agreed. Yet many won't be able to target the whole platform because only big teams can afford the required hardware to target it. Just cause Unity runs on the hardware doesn't mean anything, half the Unity android games show that by running bare if fluent at all on 1st gen snapdragon hardware yet that was the upper half till last autumn, so on the bottom half of last autumn and before these games don't run at all anymore in a usable form
     
  11. bigdaddio

    bigdaddio

    Joined:
    May 18, 2009
    Posts:
    220
    I prefer to go with real market research, my observations are useless as I can only se a few people in my city, not everyone everywhere.

    iPhone App User Worth More Than An Android App User

    iPhone Users Still More Likely to Buy Apps than Android Users

    Android Soars, but iPhone Still Most Desired as Smartphones Grab 25% of U.S. Mobile Market

    Fruit Ninja Slices 50,000 Downloads in 2 Weeks on Android Market Place

    On top of that there are no Android Pods that I have seen, and very few Android Pads, yet. Every other teenager in the world seems to have an iPod touch. There are still more iOS devices than android devices that you can DL apps on.

    Nielsen: Android Users More Likely To Click In-App Ads

    This matters because the real money now in apps is advertising and in app sales.
     
  12. Dan Fury

    Dan Fury

    Joined:
    Jul 18, 2010
    Posts:
    158
    The situation changed positively for Android in the last couple of months, last year you could estimate that the Android version will have 1/10th of the Iphone downloads, now it is more like 1/3 with free games. Paid games are also selling great, if you think about the payment limitations (not all countries supported, credit card only).
    Also Spectral souls showed that Android users are willing to buy quality software for higher prices, which is a great sign of things to come.

    Honestly, i think this is bollocks, the only Arm6 device that people buy in masses is the ZTE Blade, which is supported by Unity.
    The other big Android sellers are all higher end devices like the Galaxy S, Desire HD, Droid etc.
    If you optimize your game for the Nexus One, it will be playable by a huge part of your audience.

    And if we are talking Tegra 2, we are essentially talking about a new plattform for tablets. Most of the games that were shown at MWC today on tegra 2 won't work on lower end devices and are ports of PC and 360 games in 720p. If you want to make a high end 3D game with a 12 month dev cycle, then this is your target plattform, because by then you have lots of devices in consumer hands, for normal mobile games in the next months, I wouldn't even use Tegra 2 or Adreno 205 as a reference. As long as your game is running on a Nexus One, it'll run on all important Android handsets.
     
  13. ehsan7715

    ehsan7715

    Joined:
    Apr 10, 2010
    Posts:
    2
    hello
    i am using unity 3.5.2 and still having trouble with android sounds on armv6 devices!
    but some games like train crisishas no problem !
    is there new solution for this!??
     
  14. mtpabis

    mtpabis

    Joined:
    Oct 18, 2012
    Posts:
    13
    This topic pops up relatively high on google search results regarding Unity/ARMv6, so it could be helpful to put this info here as well:

    In Unity 4, ARMv6 is not supported anymore.

    This affects both iOS and Android builds ("iOS: Unity 4.0 discontinues support for ARMv6 devices (iPhone 1st gen, iPhone 3G, iPod Touch 1st/2nd gen)").

    Full list of changes - http://unity3d.com/unity/whats-new/unity-4.0.
     
  15. Amon

    Amon

    Joined:
    Oct 18, 2009
    Posts:
    1,239
    Very informative read, that was! And there was me thinking the Majority of Android phones would work except of course those real cheap ones.

    Eyes Opened, as they say!
     
  16. macfinch

    macfinch

    Joined:
    Aug 24, 2010
    Posts:
    139
    Great thread. I read this a while ago and its been good to refresh it in my mind.
    Few quick questions people may find useful to know the answers to:

    1) If I build for Armv6 with VFP, then a phone built using the Armv6 architecture will not be able to play the game? It would require a phone built using the Armv6 with VFP architecture?

    2) If I build using Armv6 with VFP, can phones build using the Armv7 architecture still run the game?

    3) If we build using Armv6 with VFP then it's likely the game will be downloaded more on the Android market and therefore rank higher in search results. It sounds like the only draw back here is that it would waste players' time and they would possibly give a low star rating in the market. What are your thoughts on this?

    Please let me know what you think as I'd like to test this out. I'll let you know my results and post here :)

    Thanks for the info
    Martin
     
  17. macfinch

    macfinch

    Joined:
    Aug 24, 2010
    Posts:
    139
    Quick update:
    So I testing this out quickly with 2 of our games on the Google Play market. When building the game using Armv6 inside Unity, it runs ok on my armv7 devices (google Nexus One, and Sony Experia), but it does run noticeably slower on the Nexus One when building using Armv6. Don't know how this will effect downloads yet but will let you know if anyone is interested.
    Here's the links if you want to try them out:

    Gangnam Style Vs Dance Zombies
    https://play.google.com/store/apps/details?id=com.cobalt.gangnamStyleGirlKiller

    Super Retro Dodge Ball X
    https://play.google.com/store/apps/details?id=com.visualideastudio.com.cobalt.dodge.ball.x

    Martin
     
  18. Jtbentley_v2

    Jtbentley_v2

    Joined:
    Sep 5, 2012
    Posts:
    174
    Arm6 is dying or dead, I see this is a non-issue.
     
  19. macfinch

    macfinch

    Joined:
    Aug 24, 2010
    Posts:
    139
    True, though I did see a jump in downloads when publishing an Armv6 version.
     
  20. creat327

    creat327

    Joined:
    Mar 19, 2009
    Posts:
    1,577
    yeah I have a split opinion on this. It's true that arm6 is dying but it is not by any means death yet. I have over 3 million users on one of my games and over 25% of the user base is still using arm6. That's a incredibly big chunk that we are removing by moving into armv7 only platform.

    I ported one game to unity4 and I immediately saw the android downloads graph drop like a rock, 25% of users means thousands of users not getting that next update. I raised that concern long ago but unity4 will simply not support armv6. If you want to support armv6, you will need to stick to unity 3.5
     
  21. macfinch

    macfinch

    Joined:
    Aug 24, 2010
    Posts:
    139
    Really good info, thanks for the reply. Yeah I thought the same thing. I'll be putting a video online soon about this topic on youtube. With the extra 25% you are also increasing your rank in the android app stores, more downloads = higher rank.

    Cheers
    Martin
     
  22. macfinch

    macfinch

    Joined:
    Aug 24, 2010
    Posts:
    139
    I just finished a video which talks about our experience with doing an ARMv6 build for the Google Play market and how it effected the downloads. Hope you find it useful:

    https://www.youtube.com/watch?v=3AIPCDEc31k

     
  23. bug5532

    bug5532

    Joined:
    Aug 16, 2011
    Posts:
    307
    They cant see/download the app if they just have ARMv6, not ARMv6 with vfp. So you dont have to worry about that :)
     
  24. Deleted User

    Deleted User

    Guest

    In our online games(2D SLG)
    The ARMv6 user provides 10% of revenue, about $ 1000 to $ 2000 one day (in December 2012).
    In 2013, there are a large number of cheap Android (ARMv6) is still selling.
    Unity4 does not support ARMv6.
    This influence we can not choose Unity3D.(Although Unity3D is very easy to use, and supports multi-platform, but the market-determined, we can not use.)
     
    Last edited by a moderator: Jan 18, 2013
  25. CodX

    CodX

    Joined:
    Jan 20, 2013
    Posts:
    3
  26. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,571
    That's the thing though. Users demand better visuals, more exciting gameplay and other things arm 6 devices fall short with. How much are you losing by contrast gimping your game? if it's 10% of users who prefer more exciting visuals, then it still does not make any sense to go this route.

    However, if your game is a simple one by default that doesn't require extra power then your findings are very valid. My point, if there is one is that often statistics can be a red herring.
     
  27. Wild-Factor

    Wild-Factor

    Joined:
    Oct 11, 2010
    Posts:
    605
    A hypothesis:
    User having arm6 will spend less on their phone than arm7 user.
    So aren't they more likely to spend less on app ?
     
  28. Deleted User

    Deleted User

    Guest

    2D strategy game on the mobile platform, the visual effects are not the most important, but the need to support multi-platform, multi-language.
    We believe that using Unity can be simple and easy to do cross-platform (iOS / Andorid).
    Unity4 support dynamic font on the mobile platform, 2D SLG online game developers can also use Unity4(an important function: multi-language chat).
    However Unity4 to give up ARMv6 VFP.
    The Android market characteristics (a large number of cheap devices) decided ARMv6 + VFP may exist for a long period of time.
     
    Last edited by a moderator: Jan 20, 2013
  29. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    Yes. Four of my five devices are ARMv6. :(
     
  30. luckylouie

    luckylouie

    Joined:
    Nov 7, 2012
    Posts:
    7
    I was wondering, is it possible to have 3 different versions of a game, one for ARMv6, one for ARMv6+VFP and one for ARMv7? The ARMv7 would have better graphics/sounds than both ARMv6 versions and ARMv6+VFP would have better graphics than the ARMv6 version.

    Do you know any game examples than run on ARMv6 or ARMv6+VFP? I curious to see what these devices are capable of graphics-wise.
     
  31. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    This is quite a shocker for me, l should not have have upgraded to unity 4 at all since I still need to deploy for arm 6. Back to 3.5
     
  32. JamesArndt

    JamesArndt

    Unity Technologies

    Joined:
    Dec 1, 2009
    Posts:
    2,883
    Wow really good info as I'm looking to see what to support on the Android side. Looks like I will stick with the higher end Arm7 devices.
     
  33. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,647
    I got unity 3.5 I'm building my Android apk's on, and unity 4 that i do everything else on. My games would have something like 25 to 40 percent less downloads if i only deployed to arm v7 devices. I have only ever recorded a single error report, and it didn't happen on arm v6... I think its critical to keep reaching those devices, unless you have extreme success and can afford losing a quarter of the market. That's my two cents
     
  34. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    I didn't know anything about the armv6/v7 before. Thanks guys! And nice vid explanation MacFinch.
    Gigi
     
  35. hihaha

    hihaha

    Joined:
    Feb 21, 2013
    Posts:
    3
    Does anybody have any stats about android tablets, how many of them are armv6 or armv7 ?
     
  36. Finity

    Finity

    Joined:
    Jan 25, 2013
    Posts:
    10
    Is there a list to see armv6 devices WITH-OUT VFP support?

    I don't want the app available to armv6 only devices.
    I want the app available to armv6+vfp devices.

    Is this possible? If not, do we have a list for "armv6 only" devices? So we could manually exclude them from Play Store.
     
  37. nw-admin

    nw-admin

    Joined:
    Jun 17, 2010
    Posts:
    53
    Is it possible to use multiple APKs (one with ARMv6 another with ARMv7) for a same application on Google Play Store?

    This is to target additional user base who has ARMv6 based Android devices.
    ARMv6 build will be created with Unity 3.x
    ARMv7 build will be created with Unity 4.x

    How do we filter this with CPU architecture (ABI)
    http://developer.android.com/google/play/publishing/multiple-apks.html

    Bit details on this will be very helpful.
    Thanks in advance.
     
unityunity