Amazon was also unable to compete in the mobile phone competition last week, releasing its own Fire phone, so the Android family has another variant, and the level of fragmentation of the Android system is further exacerbated. Because of the work, I was fortunate enough to get a project in advance last month, but for policy reasons it is now possible to talk about the new phone.
For the features and appearance of the Fire Phone, the official website and various technical websites have been introduced and reported in detail, and because I got the engineering machine, can not reflect the complete function display, so this article is mainly about the Fire phone for developers to face the problem and situation.
Android Heart, iphone type
Like all other manufacturers ' custom Android phones, the Fire Phone has unique features to differentiate itself, or there's no reason for users to buy a homogenous setting. First, on the key, since 3.0 Android has traditionally had 3 keys for both physical and virtual: The Return key (back to the previous page), the main screen key (back to the phone's home screen), the Task key (view the most recently used task list). The Fire Phone, in addition to the return and task keys, left the main screen key, looking like an iphone with a bigger screen.
This is a more important issue for many developers to consider. Because sometimes we may assume that all Android devices have a return key, so in the interface design, for the sake of aesthetics and applicability and other factors, but not the interface to add a return button. So if the program is placed on Amazon's App Store, the user may be trapped in an interface that doesn't have a return button.
But later we were informed by Amazon's staff that the device has a return button, but not the entity button, but to go up and down from underneath the device. Like a slide from above the device to see the system messages. This is not known to the new user, but only blames the application for not providing a return function that will cause them to be trapped under an interface.
On the other hand, the Fire phone does not have a task key (maybe it is open with some gesture, but I still do not see it), which means that the user cannot manually close the application in the recently used taskbar. So the next time you open it, you're still going to the interface that can't be returned, so the user might get bored with the program and delete it completely.
Browse Fire APIs
The success of a mobile device is largely due to the ecological environment in which it is built: the owners of mobile operating systems constantly optimize the functionality and performance of the system, and provide a convenient development kit for developers to produce the appropriate application, which will attract users to use the device, and then further improve and improve according to the user's consumption and demand.
Amazon's Fire Phone also wants to create an eco-environment in which the development interface provided by the Fire Phone gives developers access to features and features that are different from the Fire phone and other Android devices. But for these APIs, it's really frustrating and sighing in use: How can it be so bad.
Developers can download the documentation for these APIs on their website and the relevant text. Browsing the API, you can see that most of the interface's parameters and return values are int
, String
such as basic data or defined Enum
members, rather than Android's common intent, Bundle
these Parcel
types of data. The advantage of this is that the API is very easy to understand, and the downside is that it is almost completely impossible to customize the functionality and interface, only to choose and use it according to the type it gives.
The home API, for example, is a control that is called Herowidget on the development Fire Phone. The Fire Phone didn't find a list of recent apps, and it didn't have a desktop for a traditional Android device, instead it was herowidget. Applications are sorted by recent use from left to right by Carousel, and the program icon on each display item takes up half of the screen, leaving the remainder to present some application content. If custom development is not aligned, Amazon will shamelessly make its own app ads on top.
Although in essence it should be Android Appwidget, but the way only the grid and the list of the two, the list is also defined 4 styles, completely unable to define their own, even the font color, size can not be changed, but also can only present about 20-30 English words. It's all about Amazon selling things to show the goods.
In the original appwidget, you can PendingIntent
start the activity, Service, broadcastreceiver,intent can save action, Category, Data, Extra and so on information. But Herowidget can only build HeroWidgetIntent
or HeroWidgetActivityStarterIntent
start service or activity, and can only hold the longest 2048 bytes string as extra data. It feels like back in the 80 's, the days of careful use of every memory.
In fact, Amazon's Herowidget is a very good design, because the application is like opening a shop, but also pay attention to the heads. And how to let the user back, each developer is in a mind-crushing, or advertising promotion, or mail push, or system message call. Widgets are also a great way to present new things so that users can click back into the program. However, Amazon's style restrictions cause the differences between programs to appear too small, the word limit makes long story unattractive, and the limitations of storing data also lead to additional parsing of strings at development time. A good thing is going to be on Amazon's hands, and maybe Amazon is just trying to use it, and opening it to developers is very polite.
There are more or less similar problems with other APIs, and if you want to provide support for your Fire phone, you will have to endure Amazon's limitations. But for a lot of features, it's a feature that is not available for most applications. For example, 3D effect personally feel that only the game may be more meaningful, but most of the game development has its own 3D engine basically does not need Amazon's pseudo-3d;motion gestures and head tracking I'm afraid it will only be like Samsung Eyeball control is just a cool feature , rather than practical and commonly used functions. It's really cool to think about tilting the page, but it really does use it for example.
Learn about Amazon's Android SDK
Unlike previous Amazon-released Kindle, this release of the Fire Phone also offers its own slightly different Android SDK. The mobile operating system of the Fire Phone is a system based on the Android 4.2.2,api level 17 depth customization, with the so-called depth customization added to the above mentioned feature, and some of Amazon's services are bound and so on. Apps that are generally posted to Google Play can be installed on your Fire Phone with level 17 support, and Amazon's approval can be posted to their app store for more users to download and install.
But to use the special APIs mentioned earlier to support the features and features unique to Fire phone, you must compile and publish using the SDK provided by Amazon. Amazon provides documentation to teach developers how to install add-on, how to modify IEDs and configuration files to achieve the required compilation requirements. (without the Fire Phone physical machine being developed, Amazon also provides libraries and apk to make the normal device and emulator support the Herowidget display, and for other functions it is best to test on the physical machine.) )
It's all easy, the problem is that it makes Android 4.2.2, and the latest Android version has reached Android 4.4.2,api level 19. Sometimes when you develop an Android program you want to use the latest features but are backwards compatible, so you often use build.version_codes. The Build.VERSION.SDK_INT >= build.version_codes is used in our program. KitKat comparison to support the functionality of the KitKat version. The results are switched to Amazon's SDK because it is 4.2.2 so there is no KitKat definition under Build.version_codes, so all becomes error. So to support Amazon's new features while maintaining the current version of Android will inevitably make a considerable change, for the future long-term maintenance investment is also very large. This is also the huge cost of Android fragmentation.
You can only blame Amazon's customizations too deep, if you just add some libraries, instead of needing to compile with a completely different SDK, it might be a little less hassle for developers. But on the other hand, to make a difference on Android, these are hard to avoid.
It's a question of whether the Fire phone is being developed.
The Fire Phone has just come out, and there's no end to how markets and users react. It's also a big problem for developers to develop for them, because if you get to the market you like a lot earlier, you can have a certain advantage over others. If the earliest developers of iOS would have thought it would be much easier to get users at that time. But if the market does not accept the device, it is a waste of time and effort to invest prematurely, such as Windows Phone.
I've been developing for iOS before, and I've turned to Android, and while I've always had a sense of imperfection in Java, Java and Android's development and code open source is something I love very much. For the development of the place and the use of the API does not need to guess and test, you can directly read the source to find the answer, you can also understand the source code to familiarize yourself with the entire system codes and coding style, which is very helpful to the programmer's growth. But Amazon's SDK is not open to see its source code, so the interpretation of the API can only be obtained from documents and experiments, which makes me very reluctant to develop the Fire phone.
Everyone will have different comments and expectations on the Fire phone, some people think it will sell well, some people think that selling is expensive, some people feel that can not sell out, but really how to wait until more people really experience to know. Just as the ipad and ipad mini came out of the day, they felt that there was no good market results and that the size was what the user needed. Maybe the Fire Phone's 4 additional camera's motion capture technology will also lead a trend. If using a stylus is a one-point technique, then the use of gestures is a two-dimensional technique, so it's time to enter the three-dimensional technique of motion capture.
Welcome to my new Blog address Read this article