background preloader

Design Principles

Design Principles
These design principles were developed by and for the Android User Experience Team to keep users' best interests in mind. For Android developers and designers, they continue to underlie the more detailed design guidelines for different types of devices. Consider these principles as you apply your own creativity and design thinking. Deviate with purpose. Enchant Me Delight me in surprising ways A beautiful surface, a carefully-placed animation, or a well-timed sound effect is a joy to experience. Real objects are more fun than buttons and menus Allow people to directly touch and manipulate objects in your app. Let me make it mine People love to add personal touches because it helps them feel at home and in control. Get to know me Learn peoples' preferences over time. Simplify My Life Keep it brief Use short phrases with simple words. Pictures are faster than words Consider using pictures to explain ideas. Decide for me but let me have the final say Only show what I need when I need it Related:  Android Development

Creative Vision We focused the design of Android around three overarching goals, which apply to our core apps as well as the system at large. As you design apps to work with Android, consider these goals: Enchant me, Simplify my life, and Make me amazing Enchant me Beauty is more than skin deep. Simplify my life Android apps make life easier and are easy to understand. Make me amazing It's not enough to make an app that is easy to use. How to have your (Cup)cake and eat it too [This post is by Adam Powell, his second touchy-feely outing in just a few weeks. I asked him to send me a better picture than we ran last time, and got this in response. Photo by our own Romain Guy. — Tim Bray] Android developers concerned with targeting every last device with their apps are no doubt familiar with this chart: On July 1, 2010 this was the breakdown of active devices running different versions of the Android platform. With all of the new platform features added to the Android SDK in each version, this chart has many developers shouting the F-word when they are forced to choose between integrating newer platform features and providing their app to the widest possible audience. Savvy Android developers already know that these two options aren’t really mutually exclusive, but that straddling between them can be painful. Several weeks ago we took a look at how to handle multitouch on Android 2.0 (Eclair) and above, and by the end we had a simple demo app. The problem manifests

Developer Tools Before installing Android Studio or the standalone SDK tools, you must agree to the following terms and conditions. This is the Android Software Development Kit License Agreement 1. 1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. 2. 2.1 In order to use the SDK, you must first agree to this License Agreement. 3. 3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the SDK solely to develop applications for compatible implementations of Android. 3.2 You may not use this SDK to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. 4. 5. 6. 7. 8. 9. 12. 13. 14.

Introducing Android WebDriver [This post is by Dounia Berrada, an engineer on the EngTools team. — Tim Bray] Selenium WebDriver is a browser automation tool which provides a lightweight and elegant way for testing web apps. Selenium WebDriver is now available as an SDK extra in the Android SDK, and supports 2.3 (Gingerbread) and onwards! Whether or not your site is optimized for mobile browsers, you can be sure that users will be accessing it from their phones and tablets. WebDriver makes it easy to write automated tests that ensure your site works correctly when viewed from the Android browser. We’ll walk you through some basics about WebDriver and look at it in action. WebDriver Basics WebDriver tests are end-to-end tests that exercise the web application just like a real user would. WebDriver is an Android SDK extra and can be installed following these instructions. Getting Started First, create an Android project containing an empty activity with no layout. Now let’s see our test in action! Interaction Testing

What Is Telnet & What Are Its Uses? [MakeUseOf Explains] Telnet is one of those tech terms you may occasionally hear, but not in an ad or a feature laundry list of any product you may buy. That’s because it’s a protocol, or a language used to talk to computers and other machines; not only that, but Telnet is actually ancient in Internet terms, dating back from 1973. So what is Telnet, and what is it good for, anyway? A Concise Definition Wikipedia’s terse definition of Telnet is: Telnet is a network protocol used on the Internet or local area networks to provide a bidirectional interactive text-oriented communications facility using a virtual terminal connection. Wow, that’s a mouthful. Network protocol: That’s basically a language, a way for machines to talk to one another.Bidirectional: That means Telnet is not one-way; it can be used to send and receive information.Interactive: That means Telnet basically expects a live user on one end of the line. Now that we have gone over these, go back and read the Wikipedia definition again.

Zipping Files with Android (Programmatically) One majorly annoying issue that I stumbled upon, was the fact that I couldn't send multiple attachments using Intents to the Google Mail app. The quickest way around that was of course to compress all of the files into one (ZIP). After searching around online, I didn't really find much on zipping files on your Android device - most of the articles were for standard java applications, which assumed that all your files were in the current directory that you wanted to zip. So, I used what I could and whipped up my own wrapper class that allows you to easily zip files in Android! Here is the class: If that all makes sense to you already, then you probably won't be interested in my explanations below, otherwise, keep reading. :) private static final int BUFFER = 2048; private String[] _files; private String _zipFile; These are the properties that I've declared for the class. public Compress(String[] files, String zipFile) { _files = files; _zipFile = zipFile; }

Telnet BBS Guide - Main Page Unzipping Files with Android (Programmatically) I wrote an article a few months ago, which walked you through the process of zipping files programmatically with Java - in an Android environment. Due to popular demand, I've decided to write up another article on how to unzip files. The process is pretty similar, and you could probably combine them both in a single class, but for this example, I made a class called Decompress. import android.util.Log; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; /** * * @author jon */ public class Decompress { private String _zipFile; private String _location; public Decompress(String zipFile, String location) { _zipFile = zipFile; _location = location; _dirChecker(""); } public void unzip() { try { FileInputStream fin = new FileInputStream(_zipFile); ZipInputStream zin = new ZipInputStream(fin); ZipEntry ze = null; while ((ze = zin.getNextEntry()) ! Here's an example of how to use it:

JDK 7 Support in the Android SDK? - Google Groupes I am still catching up with the Google I|O conference videos. I just watched the Android Fireside Chat one. The question came up regarding JDK 7 support, and, if I understood correctly, Xav indicated that such support already existed, as of R21 (or R21.0.2 or something like that -- tough to hear that bit when watching the video on a plane...). Did I understand that correctly? If yes, are there any SDK/ADT-specific instructions for getting this to work? Is this something you want people using? Thanks! Emulator The Android SDK includes a mobile device emulator — a virtual mobile device that runs on your computer. The emulator lets you develop and test Android applications without using a physical device. This document is a reference to the available command line options and the keyboard mapping to device keys. For a complete guide to using the Android Emulator, see Using the Android Emulator. Keyboard Commands Table 1 summarizes the mappings between the emulator keys and the keys of your keyboard. Table 1. Command Line Parameters The emulator supports a variety of options that you can specify when launching the emulator, to control its appearance or behavior. emulator -avd <avd_name> [-<option> [<value>]] ... Table 2. s

Using the Android Emulator The Android SDK includes a virtual mobile device emulator that runs on your computer. The emulator lets you prototype, develop and test Android applications without using a physical device. The Android emulator mimics all of the hardware and software features of a typical mobile device, except that it cannot place actual phone calls. To let you model and test your application more easily, the emulator utilizes Android Virtual Device (AVD) configurations. The emulator also includes a variety of debug capabilities, such as a console from which you can log kernel output, simulate application interrupts (such as arriving SMS messages or phone calls), and simulate latency effects and dropouts on the data network. Overview The Android emulator is an application that provides a virtual mobile device on which you can run your Android applications. The Android emulator supports many hardware features likely to be found on mobile devices, including: Android Virtual Devices and the Emulator

Related: