12/25/17

Membuat Popup Box Fanspage Facebook Responsive 100% di Blog #Anti Gagal

Mungkin kamu sedang mencari cara membuat popup 100% responsive, dan saya pikir banyak sekali bertebaran tutorial tutorial cara membuat popup box fanspage Facebook kamu. Namun kamu belum menemukan yang cocok untuk diterapkan di blog kamu. Dan kamu putuskan sendiri, menurut saya pribadi bahwa penggunaan popup ini sangat mengganggu para pembaca blog kamu. Tapi jika kamu ingin meningkatkan like Facebook ini cocok dipakai.

cara-membuat-popup-fanspage-facebook-responsive
Popup box responsive

Pada postingan ini saya akan share bagaimana cara membuat popup box untuk fanspage Facebook sukses 100% responsive di segala ukuran devices. Anda akan melihat demontrasinya yang sudah saya terapkan pada blog-blog saya. Tapi saya kasih contoh satu saja ya ... heeeee...
Sudah lihat demo nya... Nah sekarang ikuti step by step tutorial buat popup responsive nya.
Pertama silahkan kamu buka blog kamu blogger.com
Kemudian pilih "TEMA" atau dalam bahasa inggris "THEME"
Pilih "HTML"
Catatatan: Sebelum anda membuka tema editor ada baiknya kamu backup dahulu tema kamu sebelumnya.

Cari dan simpan code CSS dibawah ini diatas  </head>
#aink-back{display:none;background:rgba(0,0,0,.8);width:100%;height:100%;position:fixed;top:0;left:0;z-index:99999}#aink-exit{width:100%;height:100%}.aink-box-inner{width:266px;position:relative;aink_gandaria:block;padding:20px 0 0;margin:0 auto;text-align:center}#aink-close{cursor:pointer;position:absolute;top:1px;right:-17px;font-size:18px;font-weight:700;color:#000;z-index:99999;aink_gandaria:inline-block;line-height:18px;height:18px;width:18px}#aink-close:hover{color:#06c}#aink-box{min-width:310px;min-height:240px;position:absolute;top:50%;left:50%;margin:-220px 0 0 -170px;-webkit-box-shadow:0 0 16px #000;-moz-box-shadow:0 0 16px #000;box-shadow:0 0 16px #000;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;background:#fff;max-height:253px}@media (max-width:380px){.aink_gandaria{position:fixed;top:50%;left:50%}#aink-box{min-width:310px;min-height:240px;transform:scale(.67);-webkit-transform:scale(.67);-o-transform:scale(.67);-ms-transform:scale(.67);-moz-transform:scale(.67)}.aink-box-inner{width:266px}#aink-close{right:-17px}}#aink-back iframe{transform:scale(.92);-webkit-transform:scale(.92);-o-transform:scale(.92);-ms-transform:scale(.92);-moz-transform:scale(.92);transform-origin:top left;-webkit-transform-origin:top left;-o-transform-origin:top left;-ms-transform-origin:top left;-moz-transform-origin:top left}
Tambahkan tag <style>.........code css........</style>

Kemudian simpan code dibawah ini diatas tag </head> juga
<script type='text/javascript'>
       //<![CDATA[
       if (typeof(jQuery) == 'undefined') {document.write("<scr" + "ipt type=\"text/javascript\" src=\"//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></scr" + "ipt>");}
       //]]>
</script>

Cari dan simpan code dibawah ini letakan diatas </body>
<script type='text/javascript'>
//<![CDATA[
//grab user's browser info and calculates/saves first visit
jQuery.cookie = function (key, value, options) { if (arguments.length > 1 && String(value) !== "[object Object]") { options = jQuery.extend({}, options); if (value === null || value === undefined) { options.expires = -1; }
if (typeof options.expires === 'number') { var days = options.expires,  t = options.expires = new Date();  t.setDate(t.getDate() + days); } value = String(value); return (document.cookie = [encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : ''].join('')); }
options = value || {}; var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent; return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null; };
// the pop up actions
$(function ($) {
  if ($.cookie('popup_fb') != 'yes') {
    $('#aink-back').delay(400).fadeIn("fast"); // options slow or fast
    $('#aink-close, #aink-exit').click(function () {
      $('#aink-back').stop().fadeOut("fast"); // options slow or fast
    });
 }
//initiate popup function by setting up the cookie expiring time
$.cookie('popup_fb', 'yes', { path: '/', expires: 0 });
});
//]]>
</script>
<div class='aink_gandaria'>
<div id='aink-back'>
  <div id='aink-exit'> </div>
  <div id='aink-box'>
    <div class='aink-box-inner'>
      <div id='aink-close'>
        <img src='https://upload.wikimedia.org/wikipedia/commons/4/44/Curation_bar_icon_close.png'/>
      </div>
      <iframe allowtransparency='true' frameborder='0' scrolling='no' src='//www.facebook.com/plugins/likebox.php?href=https://www.facebook.com/NamaFanspageAnda/&amp;width=290&amp;height=275&amp;colorscheme=light&amp;show_faces=true&amp;border_color=%23ffffff&amp;stream=false&amp;header=false' style='border: 0 none; overflow: hidden; width: 290px; height: 270px;text-align:center;margin:0 auto;'/>
    </div>
  </div>
</div>
</div>
Kemudian ganti huruf NamaFanspageAnda dengan Fanspage kamu.

Klik Simpan.

Dan coba lihat hasilnya.

Cukup mudah kan membuat popup box responsive di blogger. Jika ada pertanyaan silahkan tinggalkan di kolom komentar. Salam.....
Kamu suka cari blog-blog zombie, ini saya berikan cara mencari blog zombie dengan mudah.
Read more

Nonton Video YouTube Gratis Tanpa Kuota #Mode Airplane

Cara nonton video youtube tanpa kuota dengan menggunakan mode Airplane, Cara ini tidak work untuk semua Merk dan Type smartphone android, ada yang bisa menggunakan mode airplane untuk menonton Youtube, ada juga yang tidak bisa.

Pada tutorial ini saya akan berikan video tutorialnya bagaimana cara nonton video gratis atau cara buka youtube dengan gratis tanpa kuota data. Yaitu dengan menggunakan mode airplane. Kok, Bisa menggunakan mode airplane untuk menonton Youtube?!!! Tentu bisa, tapi seperti yang saya bilang tadi, tidak semua jenis merk dan type handphone android bisa melakukannya.

Karena tutorial ini untuk menonton video Youtube secara gratis, maka sobat sebaiknya punya aplikasi youtube

Berikut langkah-langkahnya..
Silahkan Sobat pilih dahulu mode Airplane (modus Terbang)

Setelah handphone Android and pada posisi modus terbang, sekarang anda silhkan masuk ke Network dengan ketikan *#*#4636#*#*  . Jika smartphone android anda tidak bisa masuk ke dalam network saat mengetik code untuk membuka network diatas. silahkan kamu download Network nya di Playstore atau kamu bisa download aplikasi network disini


Read more

12/23/17

Phasing out legacy recommendations on Android TV








Posted by Bejamin Baxter, Developer Programs Engineer


At Google I/O 2017, we href="https://android-developers.googleblog.com/2017/05/welcome-to-your-new-home-on-android-tv.html">announced
a redesign of the Android TV's home screen. We expanded the recommendation row
concept so that each app can have its own row (or multiple rows) of content on
the home screen. Since the release of the new home screen, we have seen
increased adoption of the new recommendation channels for Android Oreo in a wide
variety of apps.



With more and more apps surfacing high-quality recommendations using the new
channels, the href="https://developer.android.com/training/tv/discovery/recommendations-row.html">legacy
recommendation row in the new home screen on Android O will be phased out
over the next year.



Currently, when an app creates recommendations with the href="https://developer.android.com/training/tv/discovery/recommendations-row.html#build">legacy
notification based API the content is added to a channel for that app. The
channel may already exist if there was recommended content for it when you
upgraded from Android N (or below). If the there is no channel for the app, it
will be automatically generated for you. In either case, the user can't add or
remove programs from the channel, but they can move, hide, and show the channel.
When an app starts to use the new API to add its own channels, the system
removes the auto-generated channel and the app takes over control of the display
of their content.



Over the next year, we will phase out the automatic generation of channels.
Instead of generating multiple channels, one for each app's legacy
recommendations, we will insert one channel for all legacy
recommendations. This channel will appear at the bottom of the channel list.
Users can move or remove it. When a user upgrades to Android O, the previous
recommendation row from Android N (and below) becomes a channel at the bottom of
the home screen.




If you have not updated your app to post content to the new channels on the home
screen, take a look at our href="https://developer.android.com/training/tv/discovery/recommendations-channel.html">documentation,
href="https://codelabs.developers.google.com/codelabs/tv-channels-programs/index.html">codelab,
and href="https://github.com/googlesamples/leanback-homescreen-channels">sample
to get started.



We look forward to more and more apps taking advantage of the new changes in the
home screen. We love to hear your feedback, so please visit the href="https://plus.google.com/communities/112881895888889393129">Android TV
Developer Community on G+ to share your thoughts and ideas.

Read more

12/21/17

Double Stuffed Security in Android Oreo








Posted by Gian G Spicuzza, Android Security team


Android Oreo is stuffed full of security enhancements. Over the past few months,
we've covered how we've improved the security of the Android platform and its
applications: from href="https://android-developers.googleblog.com/2017/08/making-it-safer-to-get-apps-on-android-o.html">making
it safer to get apps, dropping href="https://android-developers.googleblog.com/2017/04/android-o-to-drop-insecure-tls-version.html">insecure
network protocols, providing more href="https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html">user
control over identifiers, href="https://android-developers.googleblog.com/2017/08/hardening-kernel-in-android-oreo.html">hardening
the kernel, href="https://android-developers.googleblog.com/2017/07/shut-hal-up.html">making
Android easier to update, all the way to href="https://android-developers.googleblog.com/2017/06/2017-android-security-rewards.html">doubling
the Android Security Rewards payouts. Now that Oreo is out the door, let's
take a look at all the goodness inside.


Expanding support for hardware security



Android already supports href="https://source.android.com/security/verifiedboot/">Verified Boot,
which is designed to prevent devices from booting up with software that has been
tampered with. In Android Oreo, we added a reference implementation for Verified
Boot running with href="https://source.android.com/devices/architecture/treble">Project
Treble, called Android Verified Boot 2.0 (AVB). AVB has a couple of cool
features to make updates easier and more secure, such as a common footer format
and rollback protection. Rollback protection is designed to prevent a device to
boot if downgraded to an older OS version, which could be vulnerable to an
exploit. To do this, the devices save the OS version using either special
hardware or by having the Trusted Execution Environment (TEE) sign the data.
Pixel 2 and Pixel 2 XL come with this protection and we recommend all device
manufacturers add this feature to their new devices.



Oreo also includes the new href="https://android-review.googlesource.com/#/c/platform/hardware/interfaces/+/527086/-1..1/oemlock/1.0/IOemLock.hal">OEM
Lock Hardware Abstraction Layer (HAL) that gives device manufacturers more
flexibility for how they protect whether a device is locked, unlocked, or
unlockable. For example, the new Pixel phones use this HAL to pass commands to
the bootloader. The bootloader analyzes these commands the next time the device
boots and determines if changes to the locks, which are securely stored in
Replay Protected Memory Block (RPMB), should happen. If your device is stolen,
these safeguards are designed to prevent your device from being reset and to
keep your data secure. This new HAL even supports moving the lock state to
dedicated hardware.



Speaking of hardware, we've invested support in tamper-resistant hardware, such
as the href="https://android-developers.googleblog.com/2017/11/how-pixel-2s-security-module-delivers.html">security
module found in every Pixel 2 and Pixel 2 XL. This physical chip prevents
many software and hardware attacks and is also resistant to physical penetration
attacks. The security module prevents deriving the encryption key without the
device's passcode and limits the rate of unlock attempts, which makes many
attacks infeasible due to time restrictions.



While the new Pixel devices have the special security module, all new href="https://www.android.com/gms/">GMS devices shipping with Android Oreo
are required to implement href="https://android-developers.googleblog.com/2017/09/keystore-key-attestation.html">key
attestation. This provides a mechanism for strongly href="https://source.android.com/security/keystore/attestation#id-attestation">attesting
IDs such as hardware identifiers.



We added new features for enterprise-managed devices as well. In work profiles,
encryption keys are now ejected from RAM when the profile is off or when your
company's admin remotely locks the profile. This helps secure enterprise data at
rest.


Platform hardening and process isolation



As part of href="https://android-developers.googleblog.com/2017/05/here-comes-treble-modular-base-for.html">Project
Treble, the Android framework was re-architected to make updates easier and
less costly for device manufacturers. This separation of platform and
vendor-code was also designed to improve security. Following the href="https://en.wikipedia.org/wiki/Principle_of_least_privilege">principle of
least privilege, these HALs run in their href="https://android-developers.googleblog.com/2017/07/shut-hal-up.html">own
sandbox and only have access to the drivers and permissions that are
absolutely necessary.



Continuing with the href="https://android-developers.googleblog.com/2016/05/hardening-media-stack.html">media
stack hardening in Android Nougat, most direct hardware access has been
removed from the media frameworks in Oreo resulting in better isolation.
Furthermore, we've enabled Control Flow Integrity (CFI) across all media
components. Most vulnerabilities today are exploited by subverting the normal
control flow of an application, instead changing them to perform arbitrary
malicious activities with all the privileges of the exploited application. CFI
is a robust security mechanism that disallows arbitrary changes to the original
control flow graph of a compiled binary, making it significantly harder to
perform such attacks.



In addition to these architecture changes and CFI, Android Oreo comes with a
feast of other tasty platform security enhancements:


  • href="https://android-developers.googleblog.com/2017/07/seccomp-filter-in-android-o.html">Seccomp
    filtering
    : makes some unused syscalls unavailable to apps so that
    they can't be exploited by potentially harmful apps.
  • Hardened
    usercopy
    : A recent href="https://events.linuxfoundation.org/sites/events/files/slides/Android-%20protecting%20the%20kernel.pdf">survey
    of security bugs on Android
    revealed that invalid or missing bounds checking was seen in approximately 45%
    of kernel vulnerabilities. We've backported a bounds checking feature to Android
    kernels 3.18 and above, which makes exploitation harder while also helping
    developers spot issues and fix bugs in their code.
  • Privileged Access Never (PAN) emulation: Also backported to
    3.18 kernels and above, this feature prohibits the kernel from accessing user
    space directly and ensures developers utilize the hardened functions to access
    user space.
  • Kernel Address Space Layout Randomization (KASLR):
    Although Android has supported userspace Address Space Layout Randomization
    (ASLR) for years, we've backported KASLR to help mitigate vulnerabilities on
    Android kernels 4.4 and newer. KASLR works by randomizing the location where
    kernel code is loaded on each boot, making code reuse attacks probabilistic and
    therefore more difficult to carry out, especially remotely.

App security and device identifier changes



Android
Instant Apps
run in a restricted sandbox which limits permissions and
capabilities such as reading the on-device app list or transmitting cleartext
traffic. Although introduced during the Android Oreo release, Instant Apps
supports devices running href="https://www.android.com/versions/lollipop-5-0/">Android Lollipop and
later.



In order to handle untrusted content more safely, we've href="https://android-developers.googleblog.com/2017/06/whats-new-in-webview-security.html">isolated
WebView by splitting the rendering engine into a separate process and
running it within an isolated sandbox that restricts its resources. WebView also
supports Safe Browsing to protect
against potentially dangerous sites.



Lastly, we've made href="https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html">significant
changes to device identifiers to give users more control, including:


  • Moving the static Android ID and Widevine values to an
    app-specific value, which helps limit the use of device-scoped non-resettable
    IDs.
  • In accordance with href="https://tools.ietf.org/html/rfc7844#section-3.7">IETF RFC 7844
    anonymity profile, net.hostname is now empty and the DHCP client no
    longer sends a hostname.
  • For apps that require a device ID, we've built a Build.getSerial()
    API
    and protected it behind a permission.
  • Alongside security researchers1, we designed a robust MAC address
    randomization for Wi-Fi scan traffic in various chipsets firmware.


Android Oreo brings in all of these improvements, and href="https://www.android.com/versions/oreo-8-0/">many more. As always, we
appreciate feedback and welcome suggestions for how we can improve Android.
Contact us at security@android.com.



_____________________________________________________________________



1: Glenn Wilkinson and team at Sensepost, UK, Célestin Matte, Mathieu Cunche:
University of Lyon, INSA-Lyon, CITI Lab, Inria Privatics, Mathy Vanhoef, KU
Leuven

Read more

12/20/17

Improving app security and performance on Google Play for years to come

Posted by Edward Cunningham, Product Manager, Android


[Edit: Updated post on Dec 21 to clarify that when the
64-bit requirement is introduced in August 2019, 32-bit support is not going
away. Apps that include a 32-bit library just need to have a 64-bit version
too.]



Google Play powers billions of app installs and updates annually. We
relentlessly focus on security and performance to ensure everyone has a positive
experience discovering and installing apps and games they love. Today we're
giving Android developers a heads-up about three changes designed to support
these goals, as well as explaining the reasons for each change, and how they
will help make Android devices even more secure and performant for the long
term.


  • In the second half of 2018, Play will require that new apps and app updates
    target a recent Android API level. This will be required for new apps in
    August 2018, and for updates to existing apps in
    November 2018. This is to ensure apps are built on the latest
    APIs optimized for security and performance.
  • In August 2019, Play will require that new apps and app
    updates with native libraries provide 64-bit versions in addition to their
    32-bit versions.
  • Additionally, in early 2018, Play will start adding a small amount of
    security metadata on top of each APK to further verify app authenticity. You do
    not need to take any action for this change.


We deeply appreciate our developer ecosystem, and so hope this long advance
notice is helpful in planning your app releases. We will continue to provide
reminders and share developer resources as key dates approach to help you
prepare.



Target API level requirement from late 2018



API behavior changes advance the security and privacy protections of Android –
helping developers secure their apps and protecting people from malware. Here
are a few such changes from recent platform versions:


  • Implicit intents for bindService() no longer supported (href="https://developer.android.com/about/versions/android-5.0-changes.html#BindService">Android
    5.0)
  • Runtime permissions (href="https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-runtime-permissions">Android
    6.0)
  • User-added CAs not trusted by default for secure connections (href="https://developer.android.com/about/versions/nougat/android-7.0.html#default_trusted_ca">Android
    7.0)
  • Apps can't access user accounts without explicit user approval (href="https://developer.android.com/about/versions/oreo/android-8.0-changes.html#aaad">Android
    8.0)


Many of these changes only apply to apps that explicitly declare their support
for new API behaviors, through the href="https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#target">targetSdkVersion
manifest attribute. For example, only apps with a targetSdkVersion of 23
(the API level of Android 6.0) or higher give the user full control over what
private data – such as contacts or location – the app can access via runtime
permissions. Similarly, recent releases include user experience improvements
that prevent apps from accidentally overusing resources like battery and memory;
href="https://developer.android.com/about/versions/oreo/background.html">background
execution limits is a good example of this type of improvement.



In order to provide users with the best Android experience possible, the Google
Play Console will require that apps target a recent API level:


  • August 2018: New apps required to target API level 26
    (Android 8.0) or higher.
  • November 2018: Updates to existing apps required to target
    API level 26 or higher.
  • 2019 onwards: Each year the targetSdkVersion requirement
    will advance. Within one year following each Android dessert release, new apps
    and app updates will need to target the corresponding API level or
    higher.


Existing apps that are not receiving updates are unaffected. Developers remain
free to use a href="https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#min">minSdkVersion
of their choice, so there is no change to your ability to build apps for older
Android versions. We encourage developers to provide backwards compatibility as
far as reasonably possible. Future Android versions will also restrict apps that
don't target a recent API level and adversely impact performance or security. We
want to proactively reduce fragmentation in the app ecosystem and ensure apps
are secure and performant while providing developers with a long window and
plenty of notice in order to plan ahead.



This year we released Android Oreo, the most secure and best performing version
of Android yet, and we introduced href="https://android-developers.googleblog.com/2017/05/here-comes-treble-modular-base-for.html">Project
Treble to help the latest releases reach devices faster. Get started
building apps that target Android 8.1 Oreo
today.



64-bit support requirement in 2019



Platform support for 64-bit architectures was introduced in Android 5.0. Today,
over 40% of Android devices coming online have 64-bit support, while still
maintaining 32-bit compatibility. For apps that use native libraries, 64-bit
code typically offers significantly better performance, with additional
registers and new instructions.



In anticipation of future Android devices that support 64-bit code only, the
Play Console will require that new apps and app updates with native libraries
provide 64-bit versions in addition to their 32-bit versions. This can be within
a single APK or as one of the multiple APKs published.



We are not removing 32-bit support. Google Play will continue to support 32-bit
apps and devices. Apps that do not include native code are unaffected.



This change will come into effect in August 2019. We're providing advance notice
today to allow plenty of time for developers who don't yet support 64-bit to
plan the transition. Stay tuned for a future post in which we'll take an
in-depth look at the performance benefits of 64-bit native libraries on Android,
and check out the href="https://developer.android.com/ndk/guides/arch.html">CPUs and
Architectures guide of the NDK for more info.



Security metadata in early 2018



Next year we'll begin adding a small amount of security metadata on top of each
APK to verify that it was officially distributed by Google Play. Often when you
buy a physical product, you'll find an official label or a badge which signifies
the product's authenticity. The metadata we're adding to APKs is like a Play
badge of authenticity for your Android app.



No action is needed by developers or users. We'll adjust Play's maximum APK size
to take into account the small metadata addition, which is inserted into the href="https://source.android.com/security/apksigning/v2">APK Signing Block
and does not alter the functionality of your app. In addition to enhancing the
integrity of Play's mobile app ecosystem, this metadata will enable new
distribution opportunities for developers in the future and help more people
keep their apps up to date.



Looking ahead



2017 has been a fantastic year for developers who have seen growth and success
on Google Play. We've been hard at work on features (including those announced
at href="https://android-developers.googleblog.com/2017/05/whats-new-in-google-play-at-io-2017.html">I/O
2017 and at href="https://android-developers.googleblog.com/2017/10/playtime-2017-find-success-on-google.html">Playtime)
to help you improve your app quality and business performance. With these
features and the upcoming updates, we hope to see the Android and Play ecosystem
continue to thrive in 2018 and beyond.



How useful did you find this blogpost?




Read more

12/19/17

Quick Boot & the Top Features in the Android Emulator








Posted by Jamal Eason, Product Manager, Android




Today, we are excited to announce Quick Boot for the Android Emulator. With
Quick Boot, you can launch the Android Emulator in under 6 seconds. Quick Boot
works by snapshotting an emulator session so you can reload in seconds. Quick
Boot was first released with Android Studio 3.0 in the canary update channel and
we are excited to release the feature as a stable update today.



In addition to this new feature, we also wanted to highlight some of the top
features from recent releases. Since the complete revamp of the Android Emulator
href="https://android-developers.googleblog.com/2015/12/android-studio-20-preview-android.html">two
years ago, we continue to focus on improving speed, stability and adding a
rich set of features that accelerate your app development and testing. With all
the recent changes, it is definitely worth updating to the latest version of the
Android Emulator to use it today.



Top 5 Features


  • Quick Boot - Released as a stable feature today, Quick Boot
    allows you to resume your Android Emulator session in under 6 seconds. The first
    time you start an Android Virtual Device (AVD) with the Android Emulator, it
    must perform a cold boot (just like powering on a device), but subsequent starts
    are fast and the system is restored to the state at which you closed the
    emulator last (similar to waking a device). We accomplished this by completely
    re-engineering the legacy emulator snapshot architecture to work with virtual
    sensors and GPU acceleration. No additional setup is required because Quick Boot
    is enabled by default starting with Android Emulator v27.0.2.




Quick Boot in the Android Emulator



  • Android CTS Compatibility - With each
    release of the Android SDK, we ensure that the Android Emulator is ready for
    your app development needs, from testing backwards compatibility with Android
    KitKat to integrating the latest APIs of the developer preview. To increase
    product quality and reliability of emulator system images, we now qualify final
    Android System Image builds from Android Nougat (API 24) and higher against the
    Android Compatibility Test
    Suite
    (CTS)—the same testing suite that official Android physical devices
    must pass.


  • Google Play Support - We know that many
    app developers use Google Play Services, and it can be difficult to keep the
    service up to date in the Android Emulator system images. To solve this problem,
    we now offer versions of Android System Images that include the Play Store app.
    The Google Play images are available starting with Android Nougat (API 24). With
    these new emulator images, you can update Google Play Services via the Play
    Store app in your emulator just as you would on a physical Android device. Plus,
    you can now test end-to-end install, update, and purchase flows with the Google
    Play Store.


  • Performance Improvements - Making the
    emulator fast and performant is an on-going goal for our team. We continuously
    look at the performance impact of running the emulator on your development
    machine, especially RAM usage. With the latest versions of the Android Emulator,
    we now allocate RAM on demand, instead of allocating and pinning the memory to
    the max RAM size defined in your AVD. We do this by tapping into the native
    hypervisors for Linux (KVM) and macOS® (Hypervisor.Framework), and an
    enhanced Intel® HAXM (v6.2.1 and higher) for Microsoft®
    Windows®, which uses the new on-demand memory allocation.


  • Additionally, over the last several releases, we have improved CPU and I/O
    performance while enhancing GPU performance, including OpenGL ES 3.0 support.
    Looking at a common task such as ADB push highlights the improvements in the
    Android CPU and I/O pipelines:




    ADB Push Speed Comparison with Android Emulator




    For GPU performance, we created a sample href="https://github.com/google/gpu-emulation-stress-test">GPU emulation stress
    test app to gauge improvements over time. We found that the latest emulator
    can render higher frame rates than before, and it is one of the few emulators
    that can render OpenGL ES 3.0 accurately per the Android specification.




GPU Emulation Stress Test - Android App





GPU Emulation Stress Test with Android Emulator






More Features



In addition to these major features, there are a whole host of additional
features that we have added to the Android Emulator over the last year that you
may not be aware of:


  • Wi-Fi support - Starting with API 24 system images, you can
    create an AVD that both connects to a virtual cellular network and a virtual
    Wi-Fi Access Point.
  • Google Cast support - When using a Google Play system
    image, you can cast screen and audio content to Chromecast devices on the same
    Wi-Fi network.
  • Drag and drop APKs & files - Simply drag an APK onto the
    Android Emulator window to trigger an app install. Also you can drag any other
    data file and find it in the /Downloads folder in your Android Virtual Device.
  • Host copy & paste - You can copy & paste text between the
    Android Emulator and your development machine.
  • Virtual 2-finger pinch & zoom - When interacting with apps
    like Google Maps, hold down the Ctrl Key (on Microsoft®
    Windows® or Linux) or ⌘ (on macOS® ) , and a finger
    overlay appears on screen to aid with pinch & zoom actions.
  • GPS location - Manually select a GPS point or set of GPS
    points under the Location tab of the Android Emulator.
  • Virtual sensors - There is a dedicated page in the extended
    controls panel that has supported sensors in the Android Emulator including
    acceleration, rotation, proximity and many more.
  • WebCam support - You can use a webcam or your laptop
    built-in webcam as a virtual camera in the AVD. Validate your AVD camera
    settings in the Advanced Settings page in the AVD Manager.
  • Host machine keyboard - You can use your real keyboard to
    enter text into the Android Virtual Device.
  • Virtual SMS and phone calls - In the extended controls
    panel, you can trigger a virtual SMS or phone call to test apps with telephony
    dependencies.
  • Screen zooming - On the main toolbar, click on the magnify
    glass icon to enter zoom mode, and then select a region of the screen you want
    to inspect.
  • Window resizing - Simply drag a corner of the Android
    Emulator window to change to the desired size.
  • Network proxy support - Add a custom HTTP proxy for your
    Android Emulator session by going to the Settings page under the Proxy tab.
  • Bug reporting - You can quickly generate a bug report for
    your app by using the Bug Report section in the extended controls panel to share
    with your team or to send feedback to Google.


Learn more about the Android Emulator in the href="https://developer.android.com/studio/run/emulator.html">Emulator
documentation.



Getting Started



All of these features and improvements are available to download and use now
with Android Emulator v27.0.2+, which you can get via the SDK Manager in Android
Studio. For a fast experience, we recommend creating and running the x86 version
of emulator system images, with the latest Android Emulator, Intel® HAXM (if
applicable) and graphics drivers installed.



We appreciate any feedback on things you like, issues or features you would like
to see. If you find a bug, issue, or have a feature request feel free to href="https://developer.android.com/studio/report-bugs.html#emulator-bugs">file
an issue. We are definitely not done, but we hope you are excited about the
improvements so far.









Read more

12/15/17

LoWPAN on Android Things


Posted by Dave Smith,
Developer Advocate for IoT




Creating robust connections between IoT devices can be difficult. WiFi and
Bluetooth are ubiquitous and work well in many scenarios, but suffer limitations
when power is constrained or large numbers of devices are required on a single
network. In response to this, new communications technologies have arisen to
address the power and scalability requirements for IoT.



Low-power Wireless Personal Area Network (LoWPAN) technologies are specifically
designed for peer-to-peer usage on constrained battery-powered devices. Devices
on the same LoWPAN can communicate with each other using familiar IP networking,
allowing developers to use standard application protocols like HTTP and CoAP.
The specific LoWPAN technology that we are most excited about is href="https://www.threadgroup.org/What-is-Thread/Overview">Thread: a secure,
fault-tolerant, low-power mesh-networking technology that is quickly becoming an
industry standard.



Today we are announcing API support for configuring and managing LoWPAN as a
part of Android Things Developer Preview 6.1, including first-class networking
support for Thread. By adding an 802.15.4 radio module to one of our href="https://developer.android.com/things/hardware/index.html">developer
kits, Android Things devices can communicate directly with other peer
devices on a Thread network. These types of low-power connectivity solutions
enable Android Things devices to perform href="https://en.wikipedia.org/wiki/Edge_computing">edge computing tasks,
aggregating data locally from nearby devices to make critical decisions without
a constant connection to cloud services. See the LoWPAN href="https://developer.android.com/things/sdk/apis/lowpan.html">API guide
for more details on building apps to create and join local mesh networks.


Getting Started



OpenThread makes getting started with LoWPAN
on Android Things easy. Choose a supported radio platform, such as the href="https://openthread.io/platforms/nrf52840">Nordic nRF52840, and
download pre-built
firmware
to enable it as a Network Co-Processor (NCP). Integrate the radio
into Android Things using the href="https://github.com/androidthings/contrib-drivers/tree/master/lowpan">LoWPAN
NCP user driver. You can also expand support to other radio hardware by
building your own user drivers. See the LoWPAN href="https://developer.android.com/things/sdk/drivers/lowpan.html">user driver
API guide for more details.



To get started with DP6.1, use the href="https://partner.android.com/things/console">Android Things Console to
download system images and flash existing devices. Then download the LoWPAN sample app to try it
out for yourself! LoWPAN isn't the only exciting thing happening in the latest
release. See the href="https://developer.android.com/things/preview/releases.html#preview-6-1">release
notes for the full set of fixes and updates included in DP6.1.


Feedback



Please send us your feedback by filing href="https://issuetracker.google.com/issues/new?component=192720&template=847005">bug
reports and href="https://issuetracker.google.com/issues/new?component=192720&template=848805">feature
requests, as well as asking any questions on href="https://stackoverflow.com/questions/tagged/android-things">Stack
Overflow. You can also join Google's IoT
Developers Community
on Google+, a great resource to get updates and discuss
ideas. Also, we have our new hackster.io
community
, where everyone can share the amazing projects they have built. We
look forward to seeing what you build with Android Things!


Read more

12/14/17

Diagnose and understand your app's GPU behavior with GAPID








Posted by Andrew Woloszyn, Software Engineer


Developing for 3D is complicated. Whether you're using a native graphics API or
enlisting the help of your favorite game engine, there are thousands of graphics
commands that have to come together perfectly to produce beautiful 3D images on
your phone, desktop or VR headsets.



GAPID (Graphics API
Debugger)
is a new tool that helps developers diagnose rendering and
performance issues with their applications. With GAPID, you can capture a trace
of your application and step through each graphics command one-by-one. This lets
you visualize how your final image is built and isolate problematic calls, so
you spend less time debugging through trial-and-error.



GAPID supports OpenGL ES on Android, and Vulkan on Android, Windows and Linux.








Debugging in action, one draw call at a time



GAPID not only enables you to diagnose issues with your rendering commands, but
also acts as a tool to run quick experiments and see immediately how these
changes would affect the presented frame.



Here are a few examples where GAPID can help you isolate and fix issues with
your application:


What's the GPU doing?








Why isn't my text appearing?!



Working with a graphics API can be frustrating when you get an unexpected
result, whether it's a blank screen, an upside-down triangle, or a missing mesh.
As an offline debugger, GAPID lets you take a trace of these applications, and
then inspect the calls afterwards. You can track down exactly which command
produced the incorrect result by looking at the framebuffer, and inspect the
state at that point to help you diagnose the issue.


What happens if I do X?








Using GAPID to edit shader code



Even when a program is working as expected, sometimes you want to experiment.
GAPID allows you to modify API calls and shaders at will, so you can test things
like:


  • What if I used a different texture on this object?
  • What if I changed the calculation of bloom in this shader?


With GAPID, you can now iterate on the look and feel of your app without having
to recompile your application or rebuild your assets.



Whether you're building a stunning new desktop game with Vulkan or a beautifully
immersive VR experience on Android, we hope that GAPID will save you both time
and frustration and help you get the most out of your GPU. To get started with
GAPID and see just how powerful it is, href="https://github.com/google/gapid/releases">download it, take your
favorite application, and href="https://google.github.io/gapid/tutorials/capturetrace">capture a
trace!




Read more

12/6/17

Welcoming Android 8.1 Oreo and Android Oreo (Go edition)





Posted by Dave Burke, VP of Engineering


At href="https://www.blog.google/products/android/introducing-android-oreo-go-edition">Google
for India this Monday, we announced the final release of Android 8.1 Oreo.
Android 8.1 Oreo is another exciting step toward bringing to life our vision of
an AI-first mobile platform, for everyone, everywhere.



Android 8.1 introduces support for our new href="https://www.android.com/versions/oreo-8-0/go-edition/">Android Oreo (Go edition) software experience for entry-level
devices. Android Oreo (Go edition) brings the best of Android to the rapidly
growing market for low-memory devices around the world, including your apps and
games.



Android 8.1 also introduces the href="https://developer.android.com/ndk/guides/neuralnetworks/index.html">Neural
Networks API
, a hardware accelerated machine learning runtime to
support ML capabilities in your apps. On supported devices, the Neural Networks
API enables fast and efficient inference for a range of key use cases, starting
with vision-based object classification.



You can get started with Android 8.1 Oreo (API level 27) today. We're pushing
sources to Android Open Source Project
now, and rolling out the update to supported Pixel and Nexus devices over the
next week. We're also working with our device maker partners to bring Android
8.1 to more devices, including Android Oreo (Go edition) devices, in the months
ahead.


Android Oreo (Go edition)



As href="https://www.youtube.com/watch?v=Y2VF8tmLFHw&t=1h29m36s">announced at
Google I/O 2017, the "Android Go" project is our initiative to optimize the
Android experience for billions of people coming online around the world.
Starting with Android 8.1, we're making Android a great platform for entry-level
devices in the Android Oreo (Go edition) configuration:


  • Memory optimizations -- Improved memory usage across the
    platform to ensure that apps can run efficiently on devices with 1GB or less
    RAM.
  • Flexible targeting options -- New href="https://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_RAM_LOW">hardware
    feature constants to let you target the distribution of your apps to normal
    or low-RAM devices through Google Play.
  • Optimized Google apps: Rebuilt and optimized versions of
    Google apps, using less memory, storage space, and mobile data.
  • Google Play: While all apps will be available on Android
    Oreo (Go edition) devices, Google Play will give visibility to apps specifically
    optimized by developers to provide a great experience for billions of people
    with the href="https://developer.android.com/develop/quality-guidelines/building-for-billions.html">building
    for billions guidelines.


We've updated the building for billions guidelines with
additional guidance on href="https://developer.android.com/develop/quality-guidelines/building-for-billions-device-capacity.html#androidgo">how
to optimize your app for Android Oreo (Go edition) devices. For most
developers, optimizing your existing APK or using Google Play's href="https://developer.android.com/google/play/publishing/multiple-apks.html">Multiple
APK feature to target a version of your APK to low-RAM devices is the best
way to prepare for Android Oreo (Go edition) devices. Remember that href="https://medium.com/googleplaydev/shrinking-apks-growing-installs-5d3fcba23ce2">making
your app lighter and more efficient benefits your whole audience, regardless
of device.


Neural Networks API



The href="https://developer.android.com/ndk/guides/neuralnetworks/index.html">Neural
Networks API provides accelerated computation and inference for on-device
machine learning frameworks like href="https://www.tensorflow.org/mobile/tflite/">TensorFlow Lite -- Google's
cross-platform ML library for mobile -- as well as Caffe2 and others. TensorFlow
Lite is href="https://developers.googleblog.com/2017/11/announcing-tensorflow-lite.html">now
available to developers, so visit the href="https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite">TensorFlow
Lite open source repo for downloads and docs. TensorFlow Lite works with the
Neural Networks API to run models like href="https://research.googleblog.com/2017/06/mobilenets-open-source-models-for.html">MobileNets,
Inception v3, and href="https://research.googleblog.com/2017/11/on-device-conversational-modeling-with.html">Smart
Reply efficiently on your mobile device.


Autofill enhancements and more



Android 8.1 includes select href="https://developer.android.com/about/versions/oreo/android-8.1.html">new
features and developer APIs (API level 27), along with the latest
optimizations, bug fixes, and security patches. Extend your app with href="https://developer.android.com/about/versions/oreo/index.html">Autofill
enhancements, a href="https://developer.android.com/reference/android/os/SharedMemory.html">SharedMemory
API, and more. You can also add established Android Oreo features as well, see
the href="https://developer.android.com/about/versions/oreo/android-8.0.html">Android
Oreo site for details.


Test your apps on Android 8.1



If haven't already, take a few moments today to test your apps and make sure
they offer the experience you want for users upgrading to Android 8.1 Oreo.



Just install your current app from Google Play onto a device or href="https://developer.android.com/studio/run/managing-avds.html">emulator
running Android Oreo and test the user flows. The app should run and look great,
and handle the Android Oreo href="https://developer.android.com/about/versions/o/android-8.0-changes.html">behavior
changes properly. In particular, pay attention to href="https://developer.android.com/about/versions/o/android-8.0-changes.html#abll">background
location limits, href="https://developer.android.com/guide/topics/ui/notifiers/notifications.html#ManageChannels">notification
channels, and changes in href="https://developer.android.com/about/versions/o/android-8.0-changes.html#networking-all">networking,
href="https://developer.android.com/about/versions/o/android-8.0-changes.html#security-all">security,
and href="https://developer.android.com/about/versions/o/android-8.0-changes.html#privacy-all">identifiers.


Speed your development with Android Studio



To build with Android 8.1, we recommend updating to href="https://android-developers.googleblog.com/2017/10/android-studio-30.html">Android
Studio 3.0, which is now href="https://developer.android.com/studio/index.html">available from the stable
channel. On top of the new app href="https://developer.android.com/studio/profile/android-profiler.html">performance
profiling tools, support for the href="http://android-developers.googleblog.com/2017/05/android-announces-support-for-kotlin.html">Kotlin
programming language, and Gradle build optimizations, Android Studio 3.0
makes it easier to develop for Android Oreo features like href="https://android-developers.googleblog.com/2017/05/android-instant-apps-is-open-to-all.html">Instant
Apps, href="https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts.html">XML
Fonts, href="https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts.html">downloadable
fonts, and href="https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive.html">adaptive
icons.



With the final platform we're updating the SDK and build tools in Android
Studio, as well as the API Level 27 emulator system images. We recommend
updating to the href="https://developer.android.com/topic/libraries/support-library/revisions.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">Android
Support Library 27.0.2, which is available from href="https://developer.android.com/studio/build/dependencies.html#google-maven">Google's
Maven repository. See the href="https://developer.android.com/topic/libraries/support-library/revisions.html#27-0-0">version
notes for details on what's new.



As always, we're providing downloadable factory and OTA images on the href="https://developers.google.com/android/images?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog">Nexus
Images page to help you do final testing on your Pixel and Nexus devices.


Publish your updates to Google Play



When you're ready, you can publish your APK updates targeting API level 27 in
your alpha, beta, or production channels. Make sure that your updated app runs
well on Android Oreo as well as older versions. We recommend using href="https://developer.android.com/distribute/engage/beta.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">beta
testing to get early feedback from a small group of users and a href="https://developer.android.com/distribute/best-practices/launch/pre-launch-crash-reports.html">pre-launch
report to help you identify any issues, then do a href="https://developer.android.com/distribute/best-practices/launch/progressive-updates.html">staged
rollout. Head over to the Android Developers site to find more info on href="https://developer.android.com/distribute/best-practices/launch/launch-checklist.html">launch
best practices. We're looking forward to seeing your app updates!


What's next for Android Oreo?



We'll soon be closing the Developer Preview issue tracker, but please keep the
feedback coming! If you still see an issue that you filed in the preview
tracker, just file
a new issue
against Android 8.1 in the AOSP issue tracker. You can also
continue to give us feedback or ask questions in the href="https://plus.google.com/communities/105153134372062985968/stream/755bb91d-c101-4e32-9277-1e560c4e26d2">developer
community.



Read more

12/5/17

Tuning your apps and games for long screen devices

Posted by Fred Chung, Developer Advocate


In recent months, there's a growing trend for handset makers to ship new devices
with long screen aspect ratio (stretching beyond 16:9), many of which also sport
rounded corners. This attests to the Android ecosystem's breadth and choice.
Pixel 2 XL and Huawei Mate 10 Pro are just two of many examples. These screen
characteristics could bring a very immersive experience to users and they take
notice of apps and games that don't take advantage of the long aspect ratio
screen on these new devices. Therefore it is important for developers to
optimize for these screen designs. Let's have a look at related support
provided by the Android OS.


Optimize for long aspect ratio screens



Most apps using standard UI widgets will likely work out-of-the-box on these devices. href="https://developer.android.google.cn/guide/practices/screens_support.html">Android
documentation details techniques for flexibly working on multiple screen
sizes. However, some games and apps with custom UIs may run into issues due to
incorrect assumptions on certain aspect ratios. We're sharing a few typical
issues faced by developers, so you can pay attention to those relevant to you:


  • Certain sides of the screen are cropped. This makes any
    graphic or UI elements in the affected regions look incomplete.
  • Touch targets are offset from UI elements (e.g. buttons).
    Users may be confused on UI elements that are seemingly interactive.
  • For full screen mode on rounded corners devices, any UI elements
    very close to the corners may be outside of the curved corner viewable
    area
    . Imagine if a commerce app's "Purchase" button was partially
    obstructed? We recommend referencing href="https://material.io/guidelines/layout/metrics-keylines.html#metrics-keylines-keylines-spacing">Material
    Design guidelines by leaving 16dp side margins in layouts.


If responsive UI is really not suitable for your situation, as a last
resort
declare an explicit maximum supported aspect ratio as follows. On
devices with a wider aspect ratio, the app will be shown in a compatibility mode
padded with letterbox. Keep in mind that certain device models provide an
override for users to force the app into full-screen compatibility mode, so be
sure to test under these scenarios too!



Targets API level 26 or higher: Use android:maxAspectRatio
attributes.



Targets API level 25 or lower: Use android.max_aspect meta-data.
Note that maximum aspect ratio values will be respected only if your
activities don't support resizableActivity.
See href="https://developer.android.google.cn/guide/practices/screens_support.html#MaxAspectRatio">documentation
for detail.


System letterboxes an app when the declared maximum aspect ratio is smaller
than the device's screen.





Consider using side-by-side activities



Long aspect ratio devices enable even more multi-window use cases that could
increase user productivity. Beginning in Android 7.0, the platform offers a
standard way for developers to implement multi-window on supported devices as
well as perform data drag and drop between activities. Refer to href="https://developer.android.com/guide/topics/ui/multi-window.html#configuring">documentation
for details.



Testing is crucial. If you don't have access to one of these long screen
devices, be sure to test on the emulator with adequate screen size and
resolution hardware properties, which are explained in the href="https://developer.android.com/studio/run/managing-avds.html#hpproperties">emulator
documentation.



We know you want to delight your users with long screen devices. With a few
steps, you can ensure your apps and games taking full advantage of these
devices!



Read more

11/30/17

Android Things Developer Preview 6

Posted by Wayne Piekarski,
Developer Advocate for IoT



The next release of Android Things Developer Preview 6 (DP6) is here with lots
of new features and bug fixes. Android Things is Google's platform that enables
Android Developers to create Internet of Things (IoT) devices with support for
powerful applications such as video and audio processing and on-board machine
learning with TensorFlow. For the specifics on what is new, visit the href="https://developer.android.com/things/preview/releases.html">release
notes. Here are a few of the highlights of what is in DP6.


IoT launcher



DP6 includes a new IoT launcher that allows the user to see the current state of
the device and change settings using a touch screen or USB input devices.
Settings such as configuring the WiFi, finding the build ID, and checking for
updates is now something that can be done interactively, making it even easier
to get started. This launcher is visible when no other developer-provided href="https://developer.android.com/things/sdk/index.html#home_activity_support">IOT_LAUNCHER
Activity is present.



Graphics acceleration defaults



Android Things uses the open-source href="https://github.com/google/swiftshader">SwiftShader library, a
CPU-based implementation of the OpenGL ES APIs. This enables common OpenGL
support across all platforms, even those with no GPU hardware. However, many
simple 2D UIs render faster if the drawing is done directly to the framebuffer
and OpenGL emulation is not used. In DP6, OpenGL rendering is disabled by
default to ensure that most apps run with the fastest UI possible. If you need
OpenGL support for 3D rendering, WebView, or TextureView, then explicitly enable
it in your AndroidManifest.xml according to the href="https://developer.android.com/guide/topics/graphics/hardware-accel.html">documentation:




<activity

...
android:hardwareAccelerated="true">

API 27 and Google Play Services



DP6 is now based on the latest Android 8.1 developer preview, with API level 27.
Most of the standard Android samples now work on DP6. For example, the href="https://github.com/googlesamples/android-Camera2Basic">Camera2Basic
sample using the Camera2 API and TextureView now works on both NXP and Raspberry
Pi based devices (with the hardwareAccelerated flag set to true). Google Play
Services has been updated to support SDK version 11.6, supporting all the href="https://developers.google.com/android/guides/releases">latest
features.


Command-line flashing tool



We heard from developers that flashing and configuring a board using fastboot
can be tedious, so the href="https://partner.android.com/things/console/#/tools">Android Things
Console now brings a new and simpler way of flashing device images. Instead
of using fastboot and adb commands manually, a new interactive command-line
href="https://partner.android.com/things/console/#/tools">android-things-setup-utility
is now provided. This tool makes it much easier to get started with Android
Things, and automates the download and flashing process.

Android Things Console updates



DP6 introduces the new partition scheme that will be used for the upcoming
production release. Due to the new partition layout, the over-the-air update
(OTA) system cannot update existing DP5.1 or earlier devices. Developers will
need to go to the Android
Things Console
, and download and flash a new DP6 build. The Console UI has
also been changed for DP6 features, and will only allow you to create new builds
based on DP6. If you have any older existing builds, they are still available
for download but will not support OTA updates. Developers are encouraged to move
all work to DP6.


GPIO pin naming



The interactive IoT launcher shown at boot now includes an I/O pinout section
where you can discover the labels of all the pins. The pin naming used by the
i.MX7 has been changed, and you should update your code to use this new naming
convention. See the href="https://developer.android.com/things/hardware/imx7d-pico-io.html">i.MX7
documentation for the complete list of pin names.



Settings and Device Update APIs



New APIs have been added to Android Things that control the href="https://developer.android.com/things/sdk/apis/settings.html">configuration
of the local device and device href="https://developer.android.com/things/sdk/apis/update.html">updates. href="https://developer.android.com/things/reference/com/google/android/things/update/UpdateManager.html">UpdateManager
gives developers control over when updates and reboots can be performed,
ensuring the device is available for the user when needed. href="https://developer.android.com/things/reference/com/google/android/things/device/DeviceManager.html">DeviceManager
controls factory reset, reboot, and device locales. APIs are also provided for
settings such as href="https://developer.android.com/things/reference/com/google/android/things/device/ScreenManager.html">ScreenManager
to control the screen, and href="https://developer.android.com/things/reference/com/google/android/things/device/TimeManager.html">TimeManager
to control the clock and time zone.


Peripheral command-line tool



We now provide a command-line tool href="https://developer.android.com/things/sdk/pio/pio-cli.html">pio
that gives developers access to the Peripheral API via the adb shell. Developers
can interactively test GPIO, PWM, UART, I2C, SPI, and future interfaces from an
adb shell, which is useful for debugging and automated testing.

Feedback



DP6 includes significant changes and improvements to the platform. Please send
us your feedback by filing href="https://code.google.com/p/android/issues/entry?template=Android%20Things%20bug%20report">bug
reports and href="https://code.google.com/p/android/issues/entry?template=Android%20Things%20feature%20request">feature
requests, as well as asking any questions on href="http://stackoverflow.com/questions/tagged/android-things">Stack
Overflow. To start using DP6, use the href="https://partner.android.com/things/console">Android Things Console to
download system images and flash existing devices, or use the href="https://partner.android.com/things/console/#/tools">android-things-setup-utility.
More information about the changes are available in the href="https://developer.android.com/things/preview/releases.html">release
notes. You can also join Google's IoT
Developers Community
on Google+, a great resource to get updates and discuss
ideas. Also, we have our new hackster.io
community
, where everyone can share the amazing projects they have built. We
look forward to seeing what you build with Android Things!


Read more

11/29/17

Delve deeper into Android development with our new course!

Posted by Jocelyn Becker, Senior Program Manager, Google Developer Training


If you know the basics of building Android apps and want to delve deeper, take a
look at our new href="http://developers.google.com/training/courses/android-advanced">Advanced
Android Development course built by the Google Developers Training team.




Do you want to learn how to use fragments, add widgets for your app, and fine
tune your app's performance? Make your app available to a diverse user base
through localization and accessibility features? Use sensors in your app? How
about creating custom views, drawing directly to the screen and running
animations?



Each lesson in our new course takes you through building an app that illustrates
an advanced concept, from incorporating maps into your app to using a
SurfaceView to draw outside the main UI thread.



This course is intended for experienced Java programmers who already know the
fundamentals of building Android apps. It is a follow-on course to our href="https://developers.google.com/training/courses/android-fundamentals">Android
Developer Fundamentals course. The course is intended to be taught as
instructor-led training. However, all the materials are published online and are
available to anyone who wants to learn more advanced concepts of Android
development.



We have published detailed written href="https://google-developer-training.gitbooks.io/android-developer-advanced-course-practicals/content/">tutorials,
href="https://google-developer-training.gitbooks.io/android-developer-advanced-course-concepts/content/">concept
guides, slide decks, and most importantly, a treasure trove of href="https://github.com/google-developer-training/android-advanced">apps in
GitHub. You can find links to everything at href="https://developers.google.com/training/courses/android-advanced">developers.google.com/training/android-advanced.



Educational institutions worldwide are invited to use this course to teach your
students. Individual developers are welcome (and encouraged) to work through the
tutorials to learn on their own.



Each lesson presents a different, advanced topic, and you can teach or learn
each topic independently of the others.




Build apps as you learn how to use sensors, add places to your app, and draw
directly to a canvas. And much more!



The new course covers:


  • using fragments
  • building widgets
  • using sensors
  • measuring and improving application performance
  • localizing your app
  • making your app accessible
  • adding location, places and maps to your apps
  • creating custom views
  • drawing to the canvas
  • drawing to a SurfaceView off the main thread
  • running animations


Learn more at href="https://developers.google.com/training/courses/android-advanced">developers.google.com/training/android-advanced.


Read more

11/28/17

Final preview of Android 8.1 now available



Posted by Dave Burke, VP of Engineering


Starting today we're rolling out an update to the Android 8.1 developer preview,
the last before the official launch to consumers in December. Android 8.1 adds
targeted enhancements to the Oreo platform, including optimizations for
Android Go (for devices with 1GB or less of memory) and a
Neural Networks API to accelerate on-device machine
intelligence. We've also included a few smaller enhancements to Oreo in response
to user and developer feedback.



If you have a device enrolled in the href="http://www.android.com/beta">Android Beta Program, you'll receive the
update over the next few days. If you haven't enrolled yet, just visit the href="http://www.android.com/beta">Android Beta site to enroll and get the
update.



At the official release in December we'll bring Android 8.1 to all supported
Pixel and Nexus devices worldwide -- including href="https://www.blog.google/products/pixel/new-pixel-2/">Pixel 2 and Pixel 2
XL, Pixel, Pixel XL, Pixel C, Nexus 5X, and Nexus 6P. Watch for
announcements soon.


What's in this update?



This preview update includes near-final Android 8.1 system images for Pixel and
Nexus devices, with official APIs (API level 27), the latest optimizations and
bug fixes, and the November 2017 security patch updates. You can use the images
for compatibility testing or to develop using new Android 8.1 features like the
href="https://developer.android.com/ndk/guides/neuralnetworks/index.html">Neural
Networks API and href="https://android-developers.googleblog.com/2017/10/android-81-developer-preview.html">others.



The Neural Networks API provides accelerated computation and inference for
on-device machine learning frameworks like href="https://www.tensorflow.org/mobile/tflite/">TensorFlow Lite -- Google's
cross-platform ML library for mobile -- as well as Caffe2 and others. TensorFlow
Lite is href="https://developers.googleblog.com/2017/11/announcing-tensorflow-lite.html">now
available to developers, so visit the href="https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite">TensorFlow
Lite open source repo for downloads and docs. TensorFlow Lite works with the
Neural Networks API to run models like href="https://research.googleblog.com/2017/06/mobilenets-open-source-models-for.html">MobileNets,
Inception v3, and href="https://research.googleblog.com/2017/11/on-device-conversational-modeling-with.html">Smart
Reply efficiently on your mobile device.



Also, for Pixel 2 users, the Android 8.1 update on these devices enables href="https://www.blog.google/products/pixel/pixel-visual-core-image-processing-and-machine-learning-pixel-2/">Pixel
Visual Core -- Google's first custom-designed co-processor for image
processing and ML -- through a new developer option. Once enabled, apps using
Android Camera API can capture HDR+ shots through Pixel Visual Core. See the href="https://developer.android.com/preview/release-notes.html#test-pixel">release
notes for details.


Get your apps ready



With the consumer launch coming href="https://developer.android.com/preview/overview.html">in December, it's
important to test your current app now. This ensures that users transition
seamlessly to Android 8.1 when it arrives on their devices.



Just enroll your eligible device in href="http://www.android.com/beta">Android Beta to get the latest update,
then install your app from Google Play and test. If you don't have a Pixel or
Nexus device, you can set up an Android 8.1 emulator for testing instead. If you
notice any issues, fix them and update your app in Google Play right away --
without changing the app's platform targeting.



When you're ready, take advantage of new features and APIs in Android 8.1. See
the developer
preview site
, the href="https://developer.android.com/sdk/api_diff/27/changes.html">API 27 diff
report, and the updated
API reference
for details.


Speed your development with Android Studio



To build with Android 8.1, we recommend updating to href="https://android-developers.googleblog.com/2017/10/android-studio-30.html">Android
Studio 3.0, which is now href="https://developer.android.com/studio/index.html">available from the stable
channel. On top of the new app href="https://developer.android.com/studio/profile/android-profiler.html">performance
profiling tools, support for the href="http://android-developers.googleblog.com/2017/05/android-announces-support-for-kotlin.html">Kotlin
programming language, and Gradle build optimizations, Android Studio 3.0
makes it easier to develop with Android Oreo features like href="https://android-developers.googleblog.com/2017/05/android-instant-apps-is-open-to-all.html">Instant
Apps, href="https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts.html">XML
Fonts, href="https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts.html">downloadable
fonts, and href="https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive.html">adaptive
icons.



We also recommend updating to the href="https://developer.android.com/topic/libraries/support-library/revisions.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">Android
Support Library 27.0.0, which is available from href="https://developer.android.com/studio/build/dependencies.html#google-maven">Google's
Maven repository. See the href="https://developer.android.com/topic/libraries/support-library/revisions.html#27-0-0">version
notes for details on what's new.


Publish your updates to Google Play



Google Play is open for apps compiled against or targeting API 27. When you're
ready, you can publish your APK updates in your alpha, beta, or production
channels.



To make sure your app runs well on Android 8.1 as well as older versions, we
recommend using Google Play's href="https://developer.android.com/distribute/engage/beta.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">beta
testing feature to run an alpha test on small group of users. Then run a
much open beta test on a much larger group of users. When you're ready to launch
your update, you can use a href="https://developer.android.com/distribute/best-practices/launch/progressive-updates.html">staged
rollout in your production channel. We're looking forward to seeing your app
updates!


Give us your feedback



As always, your feedback is crucial, so please href="https://developer.android.com/preview/feedback.html">keep it coming!.
We've set up different hotlists where you can report href="https://issuetracker.google.com/issues/new?component=190602&template=1024208">Android
platform issues, href="https://issuetracker.google.com/issues/new?component=190602&template=808305">app
compatibility issues, and href="https://issuetracker.google.com/issues/new?component=190602&template=809305">third-party
SDKs and tools issues. We also have a dedicated hotlist for href="https://issuetracker.google.com/issues/new?component=190602&template=1024216">Neural
Networks API issues.



You can also give us feedback through the href="https://plus.google.com/communities/105153134372062985968/stream/755bb91d-c101-4e32-9277-1e560c4e26d2">Android
Developer community or href="https://plus.google.com/communities/106765800802768335079">Android Beta
community as we work towards the consumer release in December.



Read more
loading...