Rabu, 20 April 2016

Build beautifully for Android Wear’s Round Screen using API 23’s -round identifier

Posted by Hoi Lam, Android Wear Developer Advocate



Android Wear is about choice. From the beginning, users could choose the style they wanted, including watches with circular screens. With Android Wear API 23, we have enabled even better developer support so that you can code delightful experiences backed by beautiful code. The key component of this is the new round resource identifier which helps you separate resource files such as layouts, dimens between round and square devices. In this blog post, I will lay out the options that developers have and why you should consider dimens.xml! In addition, I will outline how best to deal with devices which have a chin.



Getting started? Consider BoxInsetLayout!


If all your content can fit into a single square screen, use the BoxInsetLayout. This class has been included in the Wearable Support Library from the start and helps you put all the content into the middle square area of the circular screen and is ignored by square screens. For details on how to use the BoxInsetLayout, refer to the Use a Shape-Aware Layout section in our developer guide.












Without BoxInsetLayout
With BoxInsetLayout




Goodbye WatchViewStub, Hello layout-round!


Developers have been able to specify different layouts for square and round watches using WatchViewStub from the beginning. With Android Wear API 23, this has become even easier. Developers can put different layouts into layout-round and layout folders. Previously with WatchViewStub, developers needed to wait until the layout was inflated before attaching view elements, this added significant complexity to the code. This is eliminated using the -round identifier:




 Pre Android Wear API 23 - WatchViewStub (4 files)





1. layout/activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>  
 
<android.support.wearable.view.WatchViewStub    
     xmlns
:android="http://schemas.android.com/apk/res/android"  
     xmlns
:app="http://schemas.android.com/apk/res-auto"  
     xmlns
:tools="http://schemas.android.com/tools"  
     android
:id="@+id/watch_view_stub"  
     android
:layout_width="match_parent"  
     android
:layout_height="match_parent"  
     app
:rectLayout="@layout/rect_activity_main"  
     app
:roundLayout="@layout/round_activity_main"  
     tools
:context="com.android.example.watchviewstub.MainActivity"  
     tools
:deviceIds="wear"></android.support.wearable.view.WatchViewStub>

2. layout/rect_activity_main.xml - layout for square watches


3. layout/round_activity_main.xml - layout for round watches


4. MainAcitivity.java
  
 
protected void onCreate(Bundle savedInstanceState) {  
   
super.onCreate(savedInstanceState);  
   setContentView
(R.layout.activity_main);  
   
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);  
   stub
.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {  
     
@Override  
     
public void onLayoutInflated(WatchViewStub stub) {  
       mTextView
= (TextView) stub.findViewById(R.id.text);  
     
}  
   
});  
 
}  


 After Android Wear API 23 - layout-round (3 files)




1. layout-notround/activity_main.xml - layout for square watches


2. layout-round/activity_main.xml - layout for round watches


3. MainAcitivity.java

 protected void onCreate(Bundle savedInstanceState) {  
     
super.onCreate(savedInstanceState);  
     setContentView
(R.layout.activity_main);  
     mTextView
= (TextView) findViewById(R.id.text);    
 
}  



That said, since WatchViewStub is part of the Android Wear Support Library, if your current code uses it, it is not a breaking change and you can refactor your code at your convenience. In addition to the -round identifier, developers also use the -notround idenifier to separate resources. So why would you want to use it in place of the default layout? It’s a matter of style. If you have a mixture of layouts, you might consider organising layouts in this way:



  • layout/ - Layouts which works for both circular and square watches

  • layout-round/ and layout-notround/ - Screen shape specific layouts



An even better way to develop for round - values-round/dimens.xml


Maintaining multiple layout files is potentially painful. Each time you add a screen element, you need to go to all the layout files and add this. With mobile devices, you will usually only do this to specify different layouts for phones and tablets and rarely for different phone resolutions. For watches, unless your screen layout is significantly different between round and square (which is rare based on the applications I have seen thus far), you should consider using different dimens.xml instead.



As I experimented with the -round identifier, I found that the easiest way to build for round and square watches is actually by specifying values/dimens.xml and values-round/dimens.xml. By specifying different padding settings, I am able to create the following layout with the same layout.xml file and two dimens files - one for square and one for round. The values used suits this layout, you should experiment with different values to see what works best:















values-round/dimens.xml values/dimens.xml

 <dimen name="header_start_padding">36dp</dimen>  
 
<dimen name="header_end_padding">22dp</dimen>  
 
<dimen name="list_start_padding">36dp</dimen>  
 
<dimen name="list_end_padding">22dp</dimen>  

 <dimen name="header_start_padding">16dp</dimen>  
 
<dimen name="header_end_padding">16dp</dimen>  
 
<dimen name="list_start_padding">10dp</dimen>  
 
<dimen name="list_end_padding">10dp</dimen>  




Before API 23, to do the same would have involved a significant amount of boilerplate code manually specifying the different dimensions for all elements on the screen. With the -round identifier, this is now easy to do in API 23 and is my favourite way to build round / square layouts.



Don’t forget the chin!


Some watches have an inset (also know as a “chin”) in an otherwise circular screen. So how should you can you build a beautiful layout while keeping your code elegant? Consider this design:







activity_main.xml


 <FrameLayout  
   
...>  
   
<android.support.wearable.view.CircledImageView  
     android
:id="@+id/androidbtn"  
     android
:src="@drawable/ic_android"  
     
.../>  
   
<ImageButton  
     android
:id="@+id/lovebtn"  
     android
:src="@drawable/ic_favourite"  
     android
:paddingTop="5dp"  
     android
:paddingBottom="5dp"  
     android
:layout_gravity="bottom"  
     
.../>  
 
</FrameLayout>  




If we are to do nothing, the heart shape button will disappear into the chin. Luckily, there’s an easy way to fix this with fitsSystemWindows:



 <ImageButton  
     
android:id="@+id/lovebtn"  
     
android:src="@drawable/ic_favourite"  
     
android:paddingTop="5dp"  
     
android:paddingBottom="5dp"  
   
android:fitsSystemWindows="true"  
     ...
/>  


For the eagle-eyed (middle image of the screen shown below under “fitsSystemWindows=”true””), you might noticed that the top and bottom padding that we have put in is lost. This is one of the main side effect of using fitsSystemWindows. This is because fitsSystemWindows works by overriding the padding to make it fits the system window. So how do we fix this? We can replace padding with InsetDrawables:



inset_favourite.xml



 <inset  
   
xmlns:android="http://schemas.android.com/apk/res/android"  
   
android:drawable="@drawable/ic_favourite"
   
android:insetTop="5dp"  
   
android:insetBottom="5dp"
/>  


activity_main.xml



 <ImageButton  
     
android:id="@+id/lovebtn"  
     
android:src="@drawable/inset_favourite"  
     
android:paddingTop="5dp"  
     
android:paddingBottom="5dp"  
     
android:fitsSystemWindows="true"  
     ...
/>  



Although the padding setting in the layout will be ignored, the code is tidier if we remove this redundant code.














Do nothing
fitsSystemWindows=”true”
fitsSystemWindows=”true”
and use InsetDrawable



If you require more control than what is possible declaratively using xml, you can also programmatically adjust your layout. To obtain the size of the chin you should attach a View.OnApplyWindowInsetsListener to the outermost view of your layout. Also don’t forget to call v.onApplyWindowInsets(insets). Otherwise, the new listener will consume the inset and inner elements which react to insets may not react.



How to obtain the screen chin size programmatically


MainActivity.java



 private int mChinSize;  
 
protected void onCreate(Bundle savedInstanceState) {  
     
super.onCreate(savedInstanceState);  
     setContentView
(R.layout.activity_main);  
     
// find the outermost element  
     
final View container = findViewById(R.id.outer_container);  
     
// attach a View.OnApplyWindowInsetsListener  
     
container.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {  
         
@Override  
         
public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {  
             mChinSize
= insets.getSystemWindowInsetBottom();  
           
 // The following line is important for inner elements which react to insets  
             v.onApplyWindowInsets(insets);

             
return insets;  
     
}  
   
});  
 
}  


Last but not least, remember to test your code! Since last year, we have included several device images for Android Wear devices with a chin to make testing easier and faster:





Square peg in a round hole no more!


Android Wear has always been about empowering users to wear what they want. A major part in enabling this is the round screen. With API 23 and the -round resource identifier, it is easier than ever to build for both round and square watches - delightful experiences backed by beautiful code!



Additional Resources


Why would I want to fitsSystemWindows? by Ian Lake - Best practice for using this powerful tool including its limitations.
ScreenInfo Utility by Wayne Piekarski - Get useful information for your display including DPI, chin size, etc.

Deprecation of BIND_LISTENER with Android Wear APIs

Posted by Wayne Piekarski, Developer Advocate, Android Wear



If you’re an Android Wear developer, we wanted to let you know of a change you might need to make to your app to improve the performance of your user’s devices. If your app is using BIND_LISTENER intent filters in your manifest, it is important that you are aware that this API has been deprecated on all Android versions. The new replacement API introduced in Google Play Services 8.2 is more efficient for Android devices, so developers are encouraged to migrate to this as soon as possible to ensure the best user experience. It is important that all Android Wear developers are aware of this change and update their apps as soon as possible.



Limitations of BIND_LISTENER API


When Android Wear introduced the WearableListenerService, it allowed you to listen to changes via the BIND_LISTENER intent filter in the AndroidManifest.xml. These changes included data item changes, message arrivals, capability changes, and peer connects/disconnects.



The WearableListenerService starts whenever any of these events occur, even if the app is only interested in one type. When a phone has a large number of apps using WearableListenerService and BIND_LISTENER, a watch appearing or disappearing can cause many services to start up. This applies memory pressure to the device, causing other activities and services to be shut down, and generates unnecessary work.



Fine-grained intent filter API


In Google Play Services 8.2, we introduced a new fine-grained intent filter mechanism that allows developers to specify exactly what events they are interested in. For example, if you have multiple listener services, use a path prefix to filter only those data items and messages meant for the service, with syntax like this:




 <service android:name=".FirstExampleService">  
<intent-filter>
<action android:name="com.google.android.gms.wearable.DATA_CHANGED" />
<action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
<data android:scheme="wear" android:host="*" android:pathPrefix="/FirstExample" />
</intent-filter>
</service>




There are intent filters for DATA_CHANGED, MESSAGE_RECEIVED, CHANNEL_EVENT, and CAPABILITY_CHANGED. You can specify multiple elements, and if any of them match, it will call your service and filter out anything else. If you do not include a element, all events will be filtered out and your service will never be called, so make sure to include at least one. You should be aware that registering in an AndroidManifest.xml for CAPABILITY_CHANGED will cause your service to be called any time a device advertising this capability appears or disappears, so you should use this only if there is a compelling reason.



Live listeners


If you only need these events when an Activity or Service is running, then there is no need to register a listener in AndroidManifest.xml at all. Instead, you can use addListener() live listeners, which will only be active when the Activity or Service is running, and will not impact the device otherwise. This is particularly useful if you want to do live status updates for capabilities being available in an Activity, but with no further background impact. In general, you should try to use addListener(), and only use AndroidManifest.xml when you need to receive events all the time.



Best practices


In general, you should only use a listener in AndroidManifest.xml for events that must launch your service. For example, if your watch app needs to send an interactive message or data to the phone.



You should try to limit the number of wake-ups of your service by using filters. If most of the events do not need to launch your app, then use a path and a filter that only matches the event you need. This is critical to limit the number of launches of your service.



If you have other cases where you do not need to launch a service, such as listening for status updates in an Activity, then register a live listener only for the duration it is needed.



Documentation


There is more information available about Data Layer events and the use of WearableListenerService, and tags in the manifest. Android Studio has a guide with a summary of how to convert to the new API. The Android Wear samples also show best practices in the use of WearableListenerService, such as DataLayer and XYZTouristAttractions. The changes needed are very small, and can be seen in this git diff from one of the samples here.



Removal of BIND_LISTENER


With the release of Android Studio 2.1, lint rules have been added that flag the use of BIND_LISTENER as a fatal error, and developers will need to make a small change to the AndroidManifest.xml to declare accurate intent filters. If you are still using BIND_LISTENER, you will receive the following error:



 AndroidManifest.xml:11: Error: The com.google.android.gms.wearable.BIND_LISTENER action is deprecated. [WearableBindListener]  
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


This will only impact developers who are recompiling their apps with Android Studio 2.1 and will not affect existing apps on user’s devices.



For developers who are using Google Play Services earlier than 8.2, the lint rules will not generate an error, but you should update to a newer version and implement more accurate intent filters as soon as possible.



In order to give users the best experience, we plan to disable BIND_LISTENER in the near future. It is therefore important that developers take action now, to avoid any future disruption experienced by users of their apps.



























Selasa, 19 April 2016

Cara Backup Data / Backup Kontak BBM Di Hp Samsung Android

Cara backup data semua dokumen yang terdapat di dalam sistem android dengan menggunkan aplikasi kecil yang namanya smart switch prosesnya sangat mudah dan jauh lebih cepat bahkan data apapun yang kita simpan alias backup ke direktori penyimpanan komputer dapat di proses sempurna oeh smart switch tersebut. Dan saya sendiri sudah sering kali menggunkaan teknik ini karena hasilnyapun cukup bagus dan sesuai harapan.

Salah satu yang paling penting untuk di backup misalnya kontak hp juga backup kontak bbm  serta file gambar musik video dan lain-lainya. Oleh karena itu melalui sebuah postingan ini saya akan membagikan tips seputar bagaimana cara backup data hp android ke komputer atau laptop yang mana kegiatan semacam ini saat ini sangat banyak orang yang membutuhkanya termasuk saya sendiri. Mengapa kita sangat penting melakukan tindakan ini..? tentu saja karena beberapa hal dan utamanya yaitu guna menyelamatkan semua data yang tersimpan dalam memory internal android ataupun yang ada di dalam memoyi external alias sd card.

Artinya jika kita sudah membackup data dan di simpan di komputer maka pastinya kita sudah tidak khawatir lagu untuk terjadinya kehilangan data tersebut sekalipun hp android milik kita mengalami error atau mati total sistem androidnya bahkan mungkin bisa saja hilang atau di curi orang. Sehingga ketika suatu saat anda membeli kembali perangkat android hanya cukup menestore alias mengembalikan lagi data yang sebelumnya di backup di dalam laptop ke dalam android yang baru 

Dalam metode backup data android itu sendiri ada beberapa yehnis atau cara sepert yang telah saya sampaikan juga pada artikel sebelumnya yaitu backup data android menggunakan aplikasi samsung kies yang walaupun terkadang metode ini agak sedikit susah 

Baiklah  kawan-kawan saya langsung saja pada pokok materinya berikut di bawah ini :

Cara Backup Data / Backup Kontak BBM

cara backup data


1  Silahkan anda download aplikasi smart switch di situs resminya atau klik  Cara Backup Data

2  Setelah berhasil di download jang lupa langsung saja anda instal 

3  Kemudian apabila telah berhasil di instal silahkan jalankan aplikasi smart switch tersebut

4  Sambunkan perangkat HP android anda dengan menggunakan kabel data yang asli atau bawaannya

5  Pada proses singkronisasi USB usahakan device hp di setting pada bagian USB Debunging

6  Langkah selanjutnya setelah ponsel anda sudah sukses menyambung dengan laptop dan biasanya akan terlihat jenis model hp samsung milik anda seperti contoh gambar di bawah ini

cara backup data

7   Pada halaman perintah terdapat tiga opsih dan anda hanya Klik Backup

8  Di perintah berikunya anda Klik Backup kembali

cara backup data

9  Kemudia tunggu proses menyimpan semua data sampai selesai biasanya membutuhkan beberapa menit tergantung seberapa banyak file yang ada di dalam hp samsung android anda

cara backup data

10  Dan apabila semua proses backup sudah selesai anda cukup klik OK dengan demikian semua data tersebut sudah menjadi ganda alias dobel

cara backup data

Hmmmm mudah bukan...? Dan begitu pula sebaliknya kawan jika tadi anda telah melakukan backup namun selanjutnya anda juga tentunya harus mengembalikan data itu tadi. Untuk prosesnya juga sama saja hanya bedanya bila sebelumnya klik backup tapi kalau anda ingin mengembalikan berarti klik Restore dan ikuti semua perintah yang di sarankan.

Semoga artikel tentang cara backup data / backup kontak bbm ini bisa membantu dan bermanfaat serta saya ucapkan banyak terimakasih atas kunjungan anda semua.

Rabu, 13 April 2016

Optimize, Develop, and Debug with Vulkan Developer Tools

Posted by Shannon Woods, Technical Program Manager



Today we're pleased to bring you a preview of Android development tools for Vulkan™. Vulkan is a new 3D rendering API which we’ve helped to develop as a member of Khronos, geared at providing explicit, low-overhead GPU (Graphics Processor Unit) control to developers. Vulkan’s reduction of CPU overhead allows some synthetic benchmarks to see as much as 10 times the draw call throughput on a single core as compared to OpenGL ES. Combined with a threading-friendly API design which allows multiple cores to be used in parallel with high efficiency, this offers a significant boost in performance for draw-call heavy applications.



Vulkan support is available now via the Android N Preview on devices which support it, including Nexus 5X and Nexus 6P. (Of course, you will still be able to use OpenGL ES as well!)




To help developers start coding quickly, we’ve put together a set of samples and guides that illustrate how to use Vulkan effectively.



You can see Vulkan in action running on an Android device with Robert Hodgin’s Fish Tornado demo, ported by Google’s Art, Copy, and Code team:






Optimization: The Vulkan API



There are many similarities between OpenGL ES and Vulkan, but Vulkan offers new features for developers who need to make every millisecond count.




  • Application control of memory allocation. Vulkan provides mechanisms for fine-grained control of how and when memory is allocated on the GPU. This allows developers to use their own allocation and recycling policies to fit their application, ultimately reducing execution and memory overhead and allowing applications to control when expensive allocations occur.

  • Asynchronous command generation. In OpenGL ES, draw calls are issued to the GPU as soon as the application calls them. In Vulkan, the application instead submits draw calls to command buffers, which allows the work of forming and recording the draw call to be separated from the act of issuing it to the GPU. By spreading command generation across several threads, applications can more effectively make use of multiple CPU cores. These command buffers can also be reused, reducing the overhead involved in command creation and issuance.

  • No hidden work. One OpenGL ES pitfall is that some commands may trigger work at points which are not explicitly spelled out in the API specification or made obvious to the developer. Vulkan makes performance more predictable and consistent by specifying which commands will explicitly trigger work and which will not.

  • Multithreaded design, from the ground up. All OpenGL ES applications must issue commands for a context only from a single thread in order to render predictably and correctly. By contrast, Vulkan doesn’t have this requirement, allowing applications to do work like command buffer generation in parallel— but at the same time, it doesn’t make implicit guarantees about the safety of modifying and reading data from multiple threads at the same time. The power and responsibility of managing thread synchronization is in the hands of the application.

  • Mobile-friendly features. Vulkan includes features particularly helpful for achieving high performance on tiling GPUs, used by many mobile devices. Applications can provide information about the interaction between separate rendering passes, allowing tiling GPUs to make effective use of limited memory bandwidth, and avoid performing off-chip reads.

  • Offline shader compilation. Vulkan mandates support for SPIR-V, an intermediate language for shaders. This allows developers to compile shaders ahead of time, and ship SPIR-V binaries with their applications. These binaries are simpler to parse than high-level languages like GLSL, which means less variance in how drivers perform this parsing. SPIR-V also opens the door for third parties to provide compilers for specialized or cross-platform shading languages.

  • Optional validation. OpenGL ES validates every command you call, checking that arguments are within expected ranges, and objects are in the correct state to be operated upon. Vulkan doesn’t perform any of this validation itself. Instead, developers can use optional debug tools to ensure their calls are correct, incurring no run-time overhead in the final product.




Debugging: Validation Layers


As noted above, Vulkan’s lack of implicit validation requires developers to make use of tools outside the API in order to validate their code. Vulkan’s layer mechanism allows validation code and other developer tools to inspect every API call during development, without incurring any overhead in the shipping version. Our guides show you how to build the validation layers for use with the Android NDK, giving you the tools necessary to build bug-free Vulkan code from start to finish.




Develop: Shader toolchain



The Shaderc collection of tools provides developers with build-time and run-time tools for compiling GLSL into SPIR-V. Shaders can be compiled at build time using glslc, a command-line compiler, for easy integration into existing build systems. Or, for shaders which are generated or edited during execution, developers can use the Shaderc library to compile GLSL shaders to SPIR-V via a C interface. Both tools are built on top of Khronos’s reference compiler.




Additional Resources


The Vulkan ecosystem is a broad one, and the resources to get you started don’t end here. There is a wealth of material to explore, including:


























Android N Developer Preview 2, out today!

Posted by Dave Burke, VP of Engineering



Last month, we released the first Developer Preview of Android N, to give you a sneak peek at our next platform. The feedback you’ve shared to-date has helped us catch bugs and improve features. Today, the second release in our series of Developer Previews is ready for you to continue testing against your apps.



This latest preview of Android N fixes a few bugs you helped us identify, such as not being able to connect to hidden Wi-Fi networks (AOSP 203116), Multiwindow pauses (AOSP 203424), and Direct Reply closing an open activity (AOSP 204411), to name just a few. We’re still on the hunt for more; please continue to share feedback, either in the N Developer Preview issue tracker or in the N preview community.




What’s new:


Last month’s Developer Preview introduced a host of new features, like Multi-window, bundled notifications and more. This preview builds on those and includes a few new ones:



  • Vulkan: Vulkan is a new 3D rendering API which we’ve helped to develop as a member of Khronos, geared at providing explicit, low-overhead GPU (Graphics Processor Unit) control to developers and offers a significant boost in performance for draw-call heavy applications. Vulkan’s reduction of CPU overhead allows some synthetic benchmarks to see as much as 10 times the draw-call throughput on a single core as compared to OpenGL ES. Combined with a threading-friendly API design which allows multiple cores to be used in parallel with high efficiency, this offers a significant boost in performance for draw-call heavy applications. With Android N, we’ve made Vulkan a part of the platform; you can try it out on supported devices running Developer Preview 2. Read more here. Vulkan Developer Tools blog here.


  • Launcher shortcuts: Now, apps can define shortcuts which users can expose in the launcher to help them perform actions quicker. These shortcuts contain an Intent into specific points within your app (like sending a message to your best friend, navigating home in a mapping app, or playing the next episode of a TV show in a media app).

    An application can publish shortcuts with ShortcutManager.setDynamicShortcuts(List) and ShortcutManager.addDynamicShortcut(ShortcutInfo), and launchers can be expected to show 3-5 shortcuts for a given app.



  • Emoji Unicode 9 support: We are introducing a new emoji design for people emoji that moves away from our generic look in favor of a more human-looking design. If you’re a keyboard or messaging app developer, you should start incorporating these emoji into your apps.
    The update also introduces support for skin tone variations and Unicode 9 glyphs, like the bacon, selfie and face palm. You can dynamically check for the new emoji characters using Paint.hasGlyph().













New human emoji











New activity emoji



  • API changes: This update includes API changes as we continue to refine features such as multi-window support (you can now specify a separate minimum height and minimum width for an activity), notifications, and others. For details, take a look at the diff reports available in the downloadable API reference package.



  • Bug fixes: We’ve resolved a number of issues throughout the system, including these fixes for issues that you’ve reported through the public issue tracker. Please continue to let us know what you find and follow along with the known issues here.




How to get the update:


The easiest way to get this and later preview updates is by enrolling your devices in the Android Beta Program. Just visit g.co/androidbeta and opt-in your eligible Android phone or tablet -- you’ll soon receive this (and later) preview updates over-the-air. If you’ve already enrolled your device, you’ll receive the update shortly, no action is needed on your part. You can also download and flash this update manually. Developer Preview 2 is intended for developers and not as a daily driver; this build is not yet optimized for performance and battery life.



The N Developer Preview is currently available for Nexus 6, Nexus 5X, Nexus 6P, Nexus 9, and Pixel C devices, as well as General Mobile 4G [Android One] devices. For Nexus Player, the update to Developer Preview 2 will follow the other devices by several days.



To build and test apps with Developer Preview 2, you need to use Android Studio 2.1 -- the same version that was required for Developer Preview 1. You’ll need to check for SDK components updates (including build tools and emulator system images) for Developer Preview 2 -- see here for details.



Thanks so much for all of your feedback so far. Please continue to share feedback, either in the N Developer Preview issue tracker or in the N preview community. The sooner we’re able to get your feedback, the more of of it we will be able to incorporate in the next release of Android.

















Kamis, 07 April 2016

Android Studio 2.0

Posted by Jamal Eason, Product Manager, Android



Android Studio 2.0 is the fastest way to build high quality, performant apps for the Android platform, including phones and tablets, Android Auto, Android Wear, and Android TV. As the official IDE from Google, Android Studio includes everything you need to build an app, including a code editor, code analysis tools, emulators and more. This new and stable version of Android Studio has fast build speeds and a fast emulator with support for the latest Android version and Google Play Services.



Android Studio is built in coordination with the Android platform and supports all of the latest and greatest APIs. If you are developing for Android, you should be using Android Studio 2.0. It is available today as a easy download or update on the stable release channel.



Android Studio 2.0 includes the following new features that Android developer can use in their workflow :





  • Instant Run - For every developer who loves faster build speeds. Make changes and see them appear live in your running app. With many build/run accelerations ranging from VM hot swapping to warm swapping app resources, Instant Run will save you time every day.

  • Android Emulator - The new emulator runs ~3x faster than Android’s previous emulator, and with ADB enhancements you can now push apps and data 10x faster to the emulator than to a physical device. Like a physical device, the official Android emulator also includes Google Play Services built-in, so you can test out more API functionality. Finally, the new emulator has rich new features to manage calls, battery, network, GPS, and more.

  • Cloud Test Lab Integration - Write once, run anywhere. Improve the quality of your apps by quickly and easily testing on a wide range of physical Android devices in the Cloud Test Lab right from within Android Studio.

  • App Indexing Code Generation & Test - Help promote the visibility your app in Google Search for your users by adding auto-generated URLS with the App Indexing feature in Android Studio. With a few click you can add indexable URL links that you can test all within the IDE.

  • GPU Debugger Preview - For those of you developing OpenGL ES based games or apps, you can now see each frame and the GL state with the new GPU debugger. Uncover and diagnosis GL rendering issues by capturing and analyzing the GPU stream from your Android device.

  • IntelliJ 15 Update - Android Studio is built on the world class Intellij coding platform. Check out the latest Intellij features here.




Deeper Dive into the New Features



Instant Run


Today, mobile platforms are centered around speed and agility. And yet, building for mobile can sometimes feel clunky and slow. Instant Run in Android Studio is our solution to keep you in a fast and fluid development flow. The feature increases your developer productivity by accelerating your edit, build, run cycles. When you click on the Instant Run button (), Instant Run will analyze the changes you have made and determine how it can deploy your new code in the fastest way.




New Instant Run Buttons



Whenever possible, it will inject your code changes into your running app process, avoiding re-deployment and re-installation your APK. For some types of changes, an activity or app restart is required, but your edit, build and run cycles should still be generally much faster than before. Instant Run works with any Android Device or emulator running API 14 (Ice Cream Sandwich) or higher.



Since previewing Instant Run at the end of last year, we’ve spent countless hours incorporating your feedback and refining for the stable release. Look for even more acceleration in future releases because build speeds can never be too fast. To learn how you can make the most out of Instant Run in your app development today, please check out our Instant Run documentation.



Android Emulator


The new Android Emulator is up to 3x faster in CPU, RAM, & I/O in comparison to the previous Android emulator. And when you're ready to build, ADB push speeds are a whopping 10x faster! In most situations, developing on the official Android Emulator is faster than a real device, and new features like Instant Run will work best with the new Android emulator.



In addition to speed and performance, the Android Emulator has a brand user interface and sensor controls. Enhanced since the initial release, with the emulator you can drag and drop APKs for quick installation, resize and rescale the window, use multi-touch actions (pinch & zoom, pan, rotate, tilt) and much more.




Android Emulator User Interface: Toolbar & Extend Controls Panel



Trying out the new emulator is as easy as updating your SDK Tools to 25.1.1 or higher, create a fresh Android Virtual Device using one of the recommended x86 system images and you are ready to go. Learn more about the Android Emulator by checking out the documentation.



Cloud Test Lab


Cloud Test Lab is a new service that allows you to test your app across a wide range of devices and device configurations at scale in the cloud. Once you complete your initial testing with your Android Emulator or Android device, Cloud Test Lab is a great extension to your testing process that provides you to run through a collection of tests against a portfolio of physical devices hosted in Google’s data centers. Even if you do not have tests explicitly written, Cloud Test Lab can perform a basic set of tests to ensure that your app does not crash.



The new interface in Android Studio allows you to configure the portfolio of tests you want to run on Cloud Test Lab, and allows you to also see the results of your tests. To learn more about the service go here.




Setup for Cloud Test Lab



App Indexing


It is now easier for your users to find your app in Google Search with the App Indexing API. Android Studio 2.0 helps you to create the correct URL structure in your app code and add attributes in your AndroidManifest.xml file that will work the Google App Indexing service. After you add the URLs to your app, can you test and validate your app indexing code as shown here:



Google App Indexing Testing



Check out this link for more details about app indexing support in Android Studio.



GPU Debugger Preview


If you are developing OpenGL ES games or graphics-intensive apps, you have a new GPU debugger with Android Studio 2.0. Although the GPU debugger is a preview, you can step through your app frame by frame to identify and debug graphics rendering issues with rich information about the GL state. For more details on how to setup your Android device and app to work with the tool, check out the tech documentations here.



GPU Debugger Preview



What's Next



Update


If you are using a previous version of Android Studio, you can check for updates on the Beta channel from the navigation menu (Help → Check for Update [Windows/Linux] , Android Studio → Check for Updates [OS X]). If you need a new copy of Android Studio, you can download it here. If you developing for the N Developer Preview, check out this additional setup instructions.



Set Up Instant Run & Android Emulator


After you update to or download Android Studio 2.0, you should upgrade your projects to use Instant Run, and create a fresh Android Virtual Device (AVD) for the new Android emulator and you are on your way to a fast Android development experience.



Using Instant Run is easy. For each of your existing projects you will see a quick prompt to update your project to the new gradle plugin version (com.android.tools.build:gradle:2.0.0).




Prompt to update your gradle version in your project



For all new app projects in Android Studio 2.0, Instant Run is on by default. Check out the documentation for more details.



We are already hard at work developing the next release of Android Studio. We appreciate any feedback on things you like, issues or features you would like to see. Connect with us -- the Android Studio development team -- on our new Google+ page or on Twitter.
































Rabu, 06 April 2016

Android Developer Story: Video editing app WeVideo increases user engagement with material design

Posted by Lily Sheringham, Google Play team

WeVideo is a video editing platform founded on a vision to make video creation accessible to anyone, anywhere. They first launched the popular WeVideo Video Editor app for Android, and since the latest update to the app, revenue on the platform has doubled every two months. In fact, almost 85% of their mobile users are on Android devices.

Watch Krishna Menon, President & CTO, and Oleg Tsaregorodtsev, Head of Mobile Development at WeVideo, explain how relaunching their app with material design increased user engagement by 100%. They also share how WeVideo improved monetization and installs using ratings & reviews, store listing experiments, and other features on Google Play.

berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost
berita banjarnegara gilarpost