6/28/17

Android Things Console developer preview

Posted by Wayne Piekarski,
Developer Advocate for IoT


Today we are launching a preview of the href="https://partner.android.com/things/console">Android Things Console.
This console allows developers to manage the software running on their fleet of
Android Things IoT devices, including creating factory images, as well as
updating the operating system and developer-provided APKs. Devices need to run a
system image downloaded via the Android Things Console in order to receive
future updates, such as the upcoming Developer Preview 5. Google provides all of
the infrastructure for over-the-air (OTA) updates, so developers can focus on
their specific application and not have to build their own implementation –
getting their IoT devices to enter the market faster and more securely than
before.



Let's take a tour of the console, and see the features it offers.


Product Creation and Product Settings



The developer first defines a product, which includes selecting a name and the
type of System-on-Module (SoM) that the device is based on. Many developers want
to use Google Play Services when building IoT devices, and this is configured
here as an optional feature. The size of the OEM partition is also configured,
and must be large enough to include the size of any future APK growth.





Factory Images



A device needs an initial base firmware to receive future updates for the
correct product from your console. For starters, you can simply use "Create
Build Configuration" to build a default factory image with an empty bundle that
is configured for your product. This factory image can then be downloaded and
flashed to your device, and you can start developing on it by sideloading an
APK.



Later on, once you have prepared an application that you would like to deploy to
all the devices in your product, you can upload a bundle to the console. This
bundle is a ZIP file that contains a main APK file, user space drivers as a
service in an APK, and any additional APKs launched by the main APK. A href="https://source.android.com/devices/tech/ota/device_code#boot-animation">bootanimation.zip
file is also supported, which will be displayed during boot up. The uploaded
bundle ZIP file is then used to produce a complete system image that can be
deployed to devices. More information about the bundle ZIP file contents is
available in the href="https://developer.android.com/things/console/app_bundle.html">documentation.





OTA Updates



This tab allows the developer to select which system image should be pushed to
the fleet of product devices. The developer selects one, and then "Push to
Devices" starts the process. The update will then be securely pushed to all of
the devices, installed to one of the A/B partitions, and made active when the
device is rebooted. If any failures are detected, the device automatically rolls
back to the previous known working version, so future updates are still
possible. Developers will be able to test new releases of Android Things in
advance and decide whether devices should be updated automatically.





Feedback



The Android Things Console is currently a preview, and we are working on many
more features and customizations. We encourage all Android Things developers to
check out the Android Things Console and provide feedback. You can do this 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, and asking any questions on href="http://stackoverflow.com/questions/tagged/android-things">Stack
Overflow. To learn more about the Android Things Console, read the detailed
href="https://developer.android.com/things/console/index.html">documentation.
We also encourage everyone to join Google's IoT
Developers Community
on Google+, a great resource to get updates and discuss
ideas.



Read more

6/23/17

What’s new in WebView security

Posted by Xiaowen Xin and Renu Chaudhary, Android Security Team


The processing of external and untrusted content is often one of the most
important functions of an app. A newsreader shows the top news articles and a
shopping app displays the catalog of items for sale. This comes with associated
risks as the processing of untrusted content is also one of the main ways that
an attacker can compromise your app, i.e. by passing you malformed content.



Many apps handle untrusted content using href="https://developer.android.com/reference/android/webkit/WebView.html">WebView,
and we've made many improvements in Android over the years to protect it and
your app against compromise. With Android Lollipop, we started delivering
WebView as an independent APK, updated every six weeks from the Play store, so
that we can get important fixes to users quickly. With the newest WebView,
we've added a couple more important security enhancements.


Isolating the renderer process in Android O



Starting with Android O, WebView will have the renderer running in an isolated
process separate from the host app, taking advantage of the isolation between
processes provided by Android that has been available for other applications.






Similar to Chrome, WebView now provides two levels of isolation:


  1. The rendering engine has been split into a separate process. This insulates
    the host app from bugs or crashes in the renderer process and makes it harder
    for a malicious website that can exploit the renderer to then exploit the host
    app.
  2. To further contain it, the renderer process is run within an isolated
    process sandbox that restricts it to a limited set of resources. For example,
    the rendering engine cannot write to disk or talk to the network on its own.


    It is also bound to the same seccomp filter (blogpost on seccomp is coming soon) as
    used by Chrome on Android. The seccomp filter reduces the number of system calls
    the renderer process can access and also restricts the allowed arguments to the
    system calls.



Incorporating Safe Browsing



The newest version of WebView incorporates Google's href="https://safebrowsing.google.com/">Safe Browsing protections to detect
and warn users about potentially dangerous sites.. When correctly configured,
WebView checks URLs against Safe Browsing's malware and phishing database and
displays a warning message before users visit a dangerous site. On Chrome, this
helpful information is displayed more than 250 million times a month, and now
it's available in WebView on Android.


Enabling Safe Browsing



To enable Safe Browsing for all WebViews in your app, add in a manifest tag:





<manifest>
<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
android:value="true" />
. . .
<application> . . . </application>
</manifest>


Because WebView is distributed as a separate APK, Safe Browsing for WebView is
available today for devices running Android 5.0 and above. With just one added
line in your manifest, you can update your app and improve security for most of
your users immediately.



Read more

6/21/17

Ending support for Android Market on Android 2.1 and lower

Posted by Maximilian Ruppaner, Software Engineer on Google Play


On June 30, 2017, Google will be ending support for the Android Market app on
Android 2.1 Eclair and older devices. When this change happens, users on these
devices will no longer be able to access, or install other apps from, the
Android Market. The change will happen without a notification on the device, due
to technical restrictions in the original Android Market app.



It has been 7 years since Android 2.1 Eclair launched. Most app developers are
no longer supporting these Android versions in their apps given these devices
now account for only a small number of installs.



We will still be supporting later versions of Android Market for as long as
feasible. Google Play, the replacement for
Android Market, is available on Android 2.2 and above.

Read more

6/17/17

Semantic Time support now available on the Awareness APIs

Posted by Ritesh Nayak M, Product Manager





Last year at I/O we launched the href="https://developers.google.com/awareness/">Awareness API, a simple yet
powerful API that let developers use signals such as Location, Weather, Time and
User Activity to build contextually relevant app experiences.



Available via Google Play services, the Awareness API offers two ways to take
advantage of context signals within your app. The href="https://developers.google.com/awareness/android-api/snapshot-api-overview">Snapshot
API lets your app request information about the user's current context,
while the href="https://developers.google.com/awareness/android-api/fence-api-overview">Fence
API lets your app react to changes in user's context, and when it matches a
certain set of conditions. For example, "tell me whenever the user is walking
and their headphone is plugged in".



Until now, you could specify a time fence on the Awareness APIs but were
restricted to using absolute/canonical representation of time. Based on
developer feedback, we realized that the flexibility of the API in regards to
building time fences did not support higher level abstractions people use when
they think and talk about time. "This weekend", "on the next
holiday
", "after sunset", are all very common and colloquial ways
of expressing time. That's why we're adding Semantic time support to these APIs
starting today



For e.g., if you were building a fitness app and wanted a way to prompt users
everyday morning to start their routine, or if you're a reading app that wants
to turn on night mode after dusk; you would have to query a 3p API for
sunrise/sunset information at the user location and then write up an Awareness
fence with those canonical time values. With our latest update, you can use our
href="https://developers.google.com/android/reference/com/google/android/gms/awareness/fence/TimeFence.html#TIME_INSTANT_SUNRISE">TIME_INSTANT_SUNRISE
and href="https://developers.google.com/android/reference/com/google/android/gms/awareness/fence/TimeFence.html#TIME_INSTANT_SUNSET">TIME_INSTANT_SUNSET
constants and let the platform manage all the complexity for you.



Let's look at an example. Suppose you're building a fitness app which prompts
users on Tuesday, and Thursday around sunrise to begin their morning work out.
You can set up this triggering using the following lines of code.




class="prettyprint">// A sun-state-based fence that is TRUE only on Tuesday and Thursday during Sunrise
AwarenessFence.and(
TimeFence.aroundTimeInstant(TimeFence.TIME_INSTANT_SUNRISE,
-10 * ONE_MINUTE_MILLIS, 5 * ONE_MINUTE_MILLIS),
AwarenessFence.or(
TimeFence.inIntervalOfDay(TimeFence.DAY_OF_WEEK_TUESDAY,
0, ONE_DAY_MILLIS),
TimeFence.inIntervalOfDay(TimeFence.DAY_OF_WEEK_THURSDAY,
0, ONE_DAY_MILLIS)));



One of our favorite semantic time features is public holidays. Every country and
regions within it have different holidays. Assume you were a local hiking &
adventure app that wants to show users activities they can indulge in on a
holiday that falls on a Friday or a Monday. You can use a combination of Days
and Holiday flags to identify this state for all your users around the world.
You can do this with just 3 lines of code and have this work in any part of the
world.




class="prettyprint">// A local-time fence that is TRUE only on public holidays in the
// device locale that fall on Fridays or Mondays.
AwarenessFence.and(
TimeFence.inTimeInterval(TimeFence.TIME_INTERVAL_HOLIDAY),
AwarenessFence.or(
TimeFence.inIntervalOfDay(TimeFence.DAY_OF_WEEK_FRIDAY,
9 * ONE_HOUR_MILLIS, 11 * ONE_HOUR_MILLIS),
TimeFence.inIntervalOfDay(TimeFence.DAY_OF_WEEK_MONDAY,
9 * ONE_HOUR_MILLIS, 11 * ONE_HOUR_MILLIS)));


In both example cases, Awareness does the heavy lifting of localizing time and
holidays based on the device locale settings.



We're excited to see what problems you'll solve using this powerful API. Please
join our href="https://groups.google.com/forum/#!forum/google-context-apis/join">mailing
list to get updates about this and other Context APIs at Google.



Read more

6/15/17

Android Things Developer Preview 4.1


Posted by Wayne Piekarski,
Developer Advocate for IoT



Today, we're releasing a new Developer Preview 4.1 (DP4.1) of href="https://developer.android.com/things/index.html">Android Things, with
updates for new supported hardware and bug fixes to the platform. Android Things
is Google's platform to enable Android Developers to create Internet of Things
(IoT) devices, and seamlessly scale from prototype to production.


New hardware



A new Pico i.MX6UL revision B board has been released, which supports many
common external peripherals from partners such as Adafruit and Pimoroni. There
were some prototype Pico i.MX6UL boards made available to some early beta
testers, and these are not compatible with DP4.1.


Improvements



DP4.1 also includes some performance improvements since DP4, such as boot time
optimizations that improve the startup time of i.MX7D based hardware. This
Developer Preview also includes a version of Google Play Services, specifically
optimized for IoT devices. This new IoT variant is a lot smaller and optimized
for use with Android Things, and requires the use of play-services 11.0.0 or
later in your build.gradle. For more information about the supported features in
the IoT variant of Google Play Services, see the href="http://developers.android.com/things/sdk/index.html#google-services">information
page.


Google I/O



Android Things had a large presence at Google I/O this year, with 7 talks
covering different aspects of Android Things for developers, and these are
available as videos in a href="https://www.youtube.com/playlist?list=PLOU2XLYxmsIIUtQeTRlRoDCdncUpWnR4M">playlist
for those who could not attend:







What’s New In Google’s IoT Platform? Ubiquitous Computing at Google







Bringing Device Production to Everyone With Android Things







From Prototype to Production Devices with Android Things







Developing for Android Things Using Android Studio







Security for IoT on Android Things







Using Google Cloud and TensorFlow on Android Things







Building for Enterprise IoT Using Android Things and Google Cloud Platform



Google I/O also had a codelab area, where attendees could sit down and test out
Android Things development with some simple guided training guides. These
codelabs are available for anyone to try at href="https://codelabs.developers.google.com/?cat=IoT">https://codelabs.developers.google.com/?cat=IoT


Feedback



Thank you to all the developers who submitted feedback for the previous
developer previews. Please continue sending 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, and asking any questions on href="http://stackoverflow.com/questions/tagged/android-things">stackoverflow.
To download images for DP4.1, visit the Android Things href="https://developer.android.com/things/preview/download.html">download
page and find the changes 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, with over 5,600 members.





Read more

Reduce friction with the new Location APIs

Posted by Aaron Stacy, Software Engineer, Google Play services


The 11.0.0 release of the Google Play services SDK includes a new way to access
href="https://developers.google.com/android/reference/com/google/android/gms/location/LocationServices">LocationServices.
The new APIs do not require your app to manually manage a connection to Google
Play services through a GoogleApiClient. This reduces boilerplate
and common pitfalls in your app.



Read more below, or head straight to href="https://github.com/googlesamples/android-play-location">the updated
location samples on GitHub.


Why not use GoogleApiClient?



The LocationServices APIs allow you to access device location, set up geofences,
prompt the user to enable location on the device and more. In order to access
these services, the app must connect to Google Play services, which can involve
error-prone connection logic. For example, can you spot the crash in the app
below?



Note: we'll assume our app has the
ACCESS_FINE_LOCATION permission, which is required to get the
user's exact location using the LocationServices APIs.




class="prettyprint">public class MainActivity extends AppCompatActivity implements
GoogleApiClient.OnConnectionFailedListener {

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

GoogleApiClient client = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(LocationServices.API)
.build();
client.connect();

PendingResult result =
LocationServices.FusedLocationApi.requestLocationUpdates(
client, LocationRequest.create(), pendingIntent);

result.setResultCallback(new ResultCallback() {
@Override
public void onResult(@NonNull Status status) {
Log.d(TAG, "Result: " + status.getStatusMessage());
}
});
}

// ...
}


If you pointed to the requestLocationUpdates() call, you're right!
That call throws an IllegalStateException, since the
GoogleApiClient is has not yet connected. The call to
connect() is asynchronous.



While the code above looks like it should work, it's missing a href="https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks">ConnectionCallbacks
argument to the GoogleApiClient builder. The call to request
location updates should only be made after the onConnected callback
has fired:




class="prettyprint">public class MainActivity extends AppCompatActivity implements
GoogleApiClient.OnConnectionFailedListener,
GoogleApiClient.ConnectionCallbacks {

private GoogleApiClient client;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

client = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.build();

client.connect();
}

@Override
public void onConnected(@Nullable Bundle bundle) {
PendingResult result =
LocationServices.FusedLocationApi.requestLocationUpdates(
client, LocationRequest.create(), pendingIntent);

result.setResultCallback(new ResultCallback() {
@Override
public void onResult(@NonNull Status status) {
Log.d(TAG, "Result: " + status.getStatusMessage());
}
});
}

// ...
}


Now the code works, but it's not ideal for a few reasons:


  • It would be hard to refactor into shared classes if, for instance, you wanted
    to access Location Services in multiple activities.
  • The app connects optimistically in onCreate even if Location
    Services are not needed until later (for example, after user input).
  • It does not handle the case where the app fails to connect to Google Play
    services.
  • There is a lot of boilerplate connection logic before getting started with
    location updates.

A better developer experience



The new LocationServices APIs are much simpler and will make your
code less error prone. The connection logic is handled automatically, and you
only need to attach a single completion listener:




class="prettyprint">public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

FusedLocationProviderClient client =
LocationServices.getFusedLocationProviderClient(this);

client.requestLocationUpdates(LocationRequest.create(), pendingIntent)
.addOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
Log.d("MainActivity", "Result: " + task.getResult());
}
});
}
}


The new API immediately improves the code in a few ways:


  • The API calls automatically wait for the service connection to be
    established, which removes the need to wait for onConnected before
    making requests.
  • It uses the href="https://firebase.googleblog.com/2016/09/become-a-firebase-taskmaster-part-1.html">Task
    API which makes it easier to compose asynchronous operations.
  • The code is self-contained and could easily be moved into a shared utility
    class or similar.
  • You don't need to understand the underlying connection process to start
    coding.

What happened to all of the callbacks?



The new API will automatically resolve certain connection failures for you, so
you don't need to write code that for things like prompting the user to update
Google Play services. Rather than exposing connection failures globally in the
href="https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult))">onConnectionFailed
method, connection problems will fail the Task with an href="https://developers.google.com/android/reference/com/google/android/gms/common/api/ApiException">ApiException:




class="prettyprint"> client.requestLocationUpdates(LocationRequest.create(), pendingIntent)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
if (e instanceof ApiException) {
Log.w(TAG, ((ApiException) e).getStatusMessage());
} else {
Log.w(TAG, e.getMessage());
}
}
});

Try it for yourself



Try the new LocationServices APIs out for yourself in your own app
or head over to the href="https://github.com/googlesamples/android-play-location">android-play-location
samples on GitHub and see more examples of how the new clients reduce
boilerplate and simplify logic.

Read more

6/13/17

Recognizing Android Excellence on Google Play

Posted by Kacey Fahey, Developer Marketing, Google Play





Every day developers around the world are hard at work creating high quality
apps and games on Android. Striving to deliver amazing experiences for an ever
growing diverse user base, we've seen a significant increase in the level of
polish and quality of apps and games on Google Play.



As part of our efforts to recognize this content on the Play Store, today we're
launching href="https://play.google.com/store/apps/topic?id=editors_choice">Android
Excellence
. The new collections will showcase apps and games that
deliver incredible user experiences on Android, use many of our href="https://developer.android.com/distribute/best-practices/index.html">best
practices, and have great design, technical performance, localization, and
device optimization.



Android Excellence collections will refresh quarterly and can be found within
the revamped href="https://play.google.com/store/apps/topic?id=editors_choice">Editors'
Choice section of the Play Store – which includes app and game reviews
curated by our editorial team.



Congrats to our first group of Android Excellence apps and games!












href="https://play.google.com/store/apps/collection/promotion_30028e5_android_excellence_collection_apps">Android
Excellence Apps

href="https://play.google.com/store/apps/collection/promotion_30028e5_android_excellence_collection_games">Android
Excellence Games

href="https://play.google.com/store/apps/details?id=com.alibaba.aliexpresshd&e=-EnableAppDetailsPageRedesign">AliExpress
by Alibaba Mobile


href="https://play.google.com/store/apps/details?id=com.bhphoto&e=-EnableAppDetailsPageRedesign">B&H
Photo Video
by B&H Photo Video


href="https://play.google.com/store/apps/details?id=com.citymapper.app.release&e=-EnableAppDetailsPageRedesign">Citymapper
by Citymapper Limited


href="https://play.google.com/store/apps/details?id=br.com.ctncardoso.ctncar&hl=en&e=-EnableAppDetailsPageRedesign">Drivvo
by Drivvo


href="https://play.google.com/store/apps/details?id=mobi.drupe.app&e=-EnableAppDetailsPageRedesign">drupe
by drupe


href="https://play.google.com/store/apps/details?id=com.evernote&e=-EnableAppDetailsPageRedesign">Evernote
by Evernote Corporation


href="https://play.google.com/store/apps/details?id=com.hoteltonight.android.prod&e=-EnableAppDetailsPageRedesign">HotelTonight
by HotelTonight


href="https://play.google.com/store/apps/details?id=com.ajnsnewmedia.kitchenstories&e=-EnableAppDetailsPageRedesign">Kitchen
Stories
by Kitchen Stories


href="https://play.google.com/store/apps/details?id=de.komoot.android&e=-EnableAppDetailsPageRedesign">Komoot
by komoot GmbH


href="https://play.google.com/store/apps/details?id=com.sillens.shapeupclub&e=-EnableAppDetailsPageRedesign">Lifesum
by Lifesum


href="https://play.google.com/store/apps/details?id=com.memrise.android.memrisecompanion&hl=en&e=-EnableAppDetailsPageRedesign">Memrise
by Memrise


href="https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro&hl=en&e=-EnableAppDetailsPageRedesign">Pocket
by Read It Later


href="https://play.google.com/store/apps/details?id=com.runtastic.android&e=-EnableAppDetailsPageRedesign">Runtastic
Running & Fitness
by Runtastic


href="https://play.google.com/store/apps/details?id=net.skyscanner.android.main&hl=en&e=-EnableAppDetailsPageRedesign">Skyscanner
by Skyscanner Ltd


href="https://play.google.com/store/apps/details?id=com.urbandroid.sleep&e=-EnableAppDetailsPageRedesign">Sleep
as Android
by Urbandroid Team


href="https://play.google.com/store/apps/details?id=vivino.web.app&e=-EnableAppDetailsPageRedesign">Vivino
by Vivino

href="https://play.google.com/store/apps/details?id=com.nexonm.aftertheend&e=-EnableAppDetailsPageRedesign">After
the End Forsaken Destiny
by NEXON M Inc.


href="https://play.google.com/store/apps/details?id=com.zeptolab.cats.google&e=-EnableAppDetailsPageRedesign">CATS:
Crash Arena Turbo Stars
by ZeptoLab


href="https://play.google.com/store/apps/details?id=com.playdemic.golf.android&e=-EnableAppDetailsPageRedesign">Golf
Clash
by Playdemic


href="https://play.google.com/store/apps/details?id=com.squareenixmontreal.hitmango&e=-EnableAppDetailsPageRedesign">Hitman
GO
Square Enix Ltd


href="https://play.google.com/store/apps/details?id=com.aquiris.horizonchase&e=-EnableAppDetailsPageRedesign">Horizon
Chase
by Aquiris Game Studio S.A


href="https://play.google.com/store/apps/details?id=com.hotheadgames.google.free.ks2&e=-EnableAppDetailsPageRedesign">Kill
Shot Bravo
by Hothead Games


href="https://play.google.com/store/apps/details?id=com.ncsoft.redknights&e=-EnableAppDetailsPageRedesign%27">Lineage
Red Knights
by NCSOFT Corporation


href="https://play.google.com/store/apps/details?id=com.koplagames.kopla01&e=-EnableAppDetailsPageRedesign">Nonstop
Knight
by flaregames


href="https://play.google.com/store/apps/details?id=eu.bandainamcoent.pacman256&e=-EnableAppDetailsPageRedesign">PAC-MAN
256 - Endless Maze
by Bandai Namco Entertainment Europe


href="https://play.google.com/store/apps/details?id=com.etermax.pictionary&e=-EnableAppDetailsPageRedesign">Pictionary™
by Etermax


href="https://play.google.com/store/apps/details?id=com.devolver.reigns&e=-EnableAppDetailsPageRedesign">Reigns
by DevolverDigital


href="https://play.google.com/store/apps/details?id=com.vectorunit.silver.googleplay&e=-EnableAppDetailsPageRedesign">Riptide
GP: Renegade
by Vector Unit


href="https://play.google.com/store/apps/details?id=com.ea.game.starwarscapital_row&e=-EnableAppDetailsPageRedesign">Star
Wars™: Galaxy of Heroes
by Electronic Arts


href="https://play.google.com/store/apps/details?id=com.omnidrone.lanes&e=-EnableAppDetailsPageRedesign">Titan
Brawl
by Omnidrone


href="https://play.google.com/store/apps/details?id=com.tocaboca.blocks&e=-EnableAppDetailsPageRedesign">Toca
Blocks
by Toca Boca


href="https://play.google.com/store/apps/details?id=com.kabam.bigrobot&e=-EnableAppDetailsPageRedesign">Transformers:
Forged to Fight
by Kabam




Stay up-to-date on best practices to succeed on Play and get the latest news and
videos with the new beta version of our href="http://g.co/playbookbeta">Playbook app for developers.




How useful did you find this blogpost?



href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=AndroidExcellence-06/17&entry.1170596605&entry.646747778=AndroidExcellence-06/17" style= "color: gold";>★
href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=AndroidExcellence-06/17&entry.1170596605&entry.646747778=AndroidExcellence-06/17" style= "color: gold";;>★
href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=AndroidExcellence-06/17&entry.1170596605&entry.646747778=AndroidExcellence-06/17" style= "color: gold";;>★
href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=AndroidExcellence-06/17&entry.1170596605&entry.646747778=AndroidExcellence-06/17" style= "color: gold";>★
href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=AndroidExcellence-06/17&entry.1170596605&entry.646747778=AndroidExcellence-06/17" style= "color: gold";;>★




Read more

6/12/17

Money made easily with the new Google Play Billing Library

Posted by Neto Marin, Developer Advocate


Many developers want to make money through their apps, but it's not always easy to deal with all the different types of payment methods. We launched the Google Play In-app Billing API v3 in 2013, helping developers offer in-app products and subscriptions within their apps. Year after year, we've added features to the API, like subscription renewal, upgrades and downgrades, free trials, introductory pricing, promotion codes, and more.



Based on your feedback, we’re pleased to announce the Play Billing Library - Developer Preview 1. This library aims to simplify the development process when it comes to billing, allowing you to focus your efforts on implementing logic specific to your app, such as application architecture and navigation structure. The library includes several convenient classes and features for you to use when integrating your Android apps with the In-app Billing API. The library also provides an abstraction layer on top of the Android Interface Definition Language (AIDL) service, making it easier for you to define the interface between your app and the In-app Billing API.





Easy to get started and easy to use



Starting with Play Billing Library Developer Preview release, the minimum
supported API level is Android 2.2 (API level 8), and the minimum supported
In-app Billing API is version 3.



In-app billing relies on the Google Play Store, which handles the communication
between your app and Google's Play billing service. To use Google Play billing
features, your app must request the com.android.vending.BILLING
permission in your AndroidManifest.xml file.



To use the library, add the following dependency in your
build.gradle file:


dependencies {
...
compile 'com.android.billingclient:billing:dp-1'
}


After this quick setup process, you're ready to start using the Play Billing
Library in your app and can connect to the In-app Billing API, query for
available products, start the purchase flow, and more.


Sample updated: Trivial Drive V2



With a new library comes a refreshed sample! To help you to understand how to
implement in-app billing in your app using the new Play Billing Library, we've
rewritten the href="https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive">Trivial
Drive sample from the ground up.



Since we released Trivial Drive back in 2013, many new features, devices, and
platforms have been added to the Android ecosystem. To reflect this evolution,
the href="https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive_v2">Trivial
Drive v2 sample now runs on Android TV and Android Wear.


Give it a try!



Before integrating within your app, you can try the Play Billing Library with
the codelab published during Google I/O 2017: href="https://codelabs.developers.google.com/codelabs/play-billing-codelab">Buy
and Subscribe: Monetize your app on Google Play.



In this codelab, you will start with a simplified version of Trivial Drive V2
that lets users to "drive" and then you will add in-app billing to it. You'll
learn how to integrate purchases and subscriptions as well as the best practices
for developing reliable apps that handle purchases.



If you are looking for a step-by-step guide about how to sell in-app products
from your app using the Play Billing Library, check out our new href="http://developer.android.com/training/play-billing-library/index.html">training
class, explaining how to prepare your application, add products for
purchase, start purchase flow and much more.


We want your feedback



We look forward to hearing your feedback about this new library. Visit the href="https://developer.android.com/google/play/billing/billing_library.html">Play
Billing Library site,
the library href="https://developer.android.com/google/play/billing/billing_reference.html">reference,
and the new version of the href="https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive">Trivial
Drive sample. If you have issues or questions, file a href="https://issuetracker.google.com/issues/new?component=311487&template=1014446">bug
report on the href="https://issuetracker.google.com/issues?q=componentid:311487">Google Issue
Tracker, and for issues and suggestions on the sample, contact us on the href="https://github.com/googlesamples/android-play-billing/issues">Trivial
Drive issues page.



For technical questions on implementation, library usage, and best practices,
you can use the tags href="https://stackoverflow.com/questions/tagged/google-play">google-play
and href="https://stackoverflow.com/questions/tagged/play-billing-library">play-billing-library
on Stackoverflow or visit the href="https://plus.google.com/+AndroidDevelopers/palette">community pages on
our Google+ page.

Read more

6/9/17

Making the Internet safer and faster: Introducing reCAPTCHA Android API

Posted by Wei Liu, Product Manager


When we launched reCAPTCHA ten years ago, we had a simple goal: enable users to
visit the sites they love without worrying about spam and abuse. Over the years,
reCAPTCHA has changed quite a bit. It evolved from the distorted text to href="https://security.googleblog.com/2014/04/street-view-and-recaptcha-technology.html">street
numbers and names, then href="https://security.googleblog.com/2014/12/are-you-robot-introducing-no-captcha.html">No
CAPTCHA reCAPTCHA in 2014 and Invisible reCAPTCHA in March this year.






By now, more than a billion users have benefited from reCAPTCHA and we continue
to work to refine our protections.



reCAPTCHA protects users wherever they may be online. As the use of mobile
devices has grown rapidly, it's important to keep the mobile applications and
data safe. Today, on reCAPTCHA's tenth birthday, we're glad to announce the
first reCAPTCHA href="https://developer.android.com/training/safetynet/recaptcha.html">Android
API as part of Google Play Services.



With this API, reCAPTCHA can better tell human and bots apart to provide a
streamlined user experience on mobile. It will use our newest Invisible
reCAPTCHA technology, which runs risk analysis behind the scene and has enabled
millions of human users to pass through with zero click everyday. Now mobile
users can enjoy their apps without being interrupted, while still staying away
from spam and abuse.






reCAPTCHA Android API is included with Google href="https://developer.android.com/training/safetynet/index.html">SafetyNet,
which provides services like device attestation and safe browsing to protect
mobile apps. Mobile developers can do both the device and user attestations in
the same API to mitigate security risks of their apps more efficiently. This
adds to the href="https://security.googleblog.com/2017/03/diverse-protections-for-diverse.html">diversity
of security protections on Android: href="https://blog.google/products/android/google-play-protect/">Google Play
Protect to monitor for potentially harmful applications, device encryption,
and regular security updates. Please href="https://developers.google.com/recaptcha/docs/versions">visit our site
to learn more about how to integrate with the reCAPTCHA Android API, and keep an
eye out for our iOS library.



The journey of reCAPTCHA continues: we'll make the Internet safer and easier to
use for everyone (except bots).




Read more

Android O APIs are final, get your apps ready!

Posted by Dave Burke, VP of Engineering


Three weeks ago at Google I/O, we href="https://android-developers.googleblog.com/2017/05/whats-new-in-android-o-developer.html">announced
the second developer preview of Android O along with key themes, Fluid
Experiences
and Vitals, and highlighted our work
towards a modular base with href="https://android-developers.googleblog.com/2017/05/here-comes-treble-modular-base-for.html">Project
Treble. It was also an important milestone for us with the release
of the first beta-quality candidate. We talked a lot about what's new in Android
during the keynote and breakout sessions—if you missed the livestream, be sure
to check out the full archive of talks href="https://www.youtube.com/user/androiddevelopers/playlists?sort=dd&view=50&shelf_id=14">here.



Today we're rolling out Developer Preview 3 with the final Android O APIs, the
latest system images, and an update to Android Studio to help you get ready for
the consumer release later in the summer. Watch for one more preview update
coming in July that will bring you the near-final system images.



If you've already enrolled your device in the href="http://android.com/beta">Android Beta Program, you'll receive an
update to Developer Preview 3 shortly.


Make your app compatible with Android O



With the consumer launch approaching href="https://developer.android.com/preview/migration.html">in the coming
months, a critical first step is making your current app compatible with
Android O. This will give your users a seamless transition to the new platform
as it arrives on their devices.



If you haven't tested your app for compatibility yet, getting started is
straightforward -- just enroll a supported device in Android Beta and get the
latest update over-the-air, then install your current app from Google Play and
test. The app should run and look great, and it should handle the Android O href="https://developer.android.com/preview/behavior-changes.html">behavior
changes properly -- in particular pay attention to href="https://developer.android.com/preview/behavior-changes.html#abll">background
limits and changes in href="https://developer.android.com/preview/behavior-changes.html#networking-all">networking,
href="https://developer.android.com/preview/behavior-changes.html#security-all">security,
and href="https://developer.android.com/preview/behavior-changes.html#privacy-all">identifiers.



After you've made any necessary updates, we recommend publishing the compatible
version of your app to Google Play right away -- without changing the app's
platform targeting.


Enhance your app with Android O features and APIs



Extending your apps with Android O features can help you drive more engagement,
offer new interactions, give users more control and security, and even improve
your app's performance.



href="https://developer.android.com/preview/features/notification-channels.html">Notification
channels and href="https://developer.android.com/preview/features/notification-badges.html">dots
give you more ways to surface new content to users and bring them back into your
app. Picture-in-picture keeps your app onscreen while users are multitasking,
and href="https://developer.android.com/preview/features/autofill.html#optimizing_your_app_for_autofill">autofill
makes it simple for them to enter forms data and helps keep their data secure.
Also check out href="https://developer.android.com/preview/features/adaptive-icons.html">adaptive
icons, href="https://developer.android.com/preview/features/fonts-in-xml.html">XML font
resources, href="https://developer.android.com/preview/features/downloadable-fonts.html">downloadable
fonts and href="https://developer.android.com/preview/features/emoji-compat.html">emoji,
href="https://developer.android.com/preview/features/autosizing-textview.html">autosizing
TextView,href="https://developer.android.com/ndk/guides/audio/aaudio/aaudio.html"> AAudio
API, and href="https://developer.android.com/preview/api-overview.html">many others.
You'll also want plan your support for href="https://developer.android.com/preview/features/background.html">background
execution limits and other important href="https://developer.android.com/preview/behavior-changes.html#o-apps">changes
in vital system behavior for O apps.



Visit the O Developer
Preview site
to learn about all of the new features and APIs and how to
build them into your apps.











Picture-in-Picture mode lets you keep users engaged while they are multitasking (left). Notification dots keep users active in your app and let them jump directly the app’s core functions (right).

Get started with Developer Preview 3



Today's preview update includes the latest version of the Android O platform
with the final API level 26 and hundreds of bugfixes and optimizations. You can
download the final API 26 SDK from the SDK Manager in href="https://developer.android.com/studio/index.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">Android
Studio, and 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 26.0.0 beta 2 from href="https://developer.android.com/studio/build/dependencies.html#google-maven">Google's
Maven repository.



Together, these give you everything you need to develop and test your apps with
the official Android O APIs. Once you've installed the final SDK, you can update
your project's compileSdkVersion to API 26 to compile against the
official Android O APIs. We also recommend updating your app's
targetSdkVersion to API 26 to opt-in and test your app with Android
O specific href="https://developer.android.com/preview/behavior-changes.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">behavior
changes. See the href="https://developer.android.com/preview/migration.html#bfa">migration
guide for details on how to set up your environment to build with Android O.



APIs have changed since the second developer preview, so if you have existing
code using Android O preview APIs, take a look at the href="https://developer.android.com/sdk/api_diff/26-incr/changes.html">diff
report to see where your code might be affected.



If you're developing for Android O, we recommend updating to the latest version
of href="https://android-developers.googleblog.com/2017/05/android-studio-3-0-canary1.html">Android
Studio 3.0, now available in the canary channel. Aside from great new
features like improved app 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
includes build support for href="https://android-developers.googleblog.com/2017/05/android-instant-apps-is-open-to-all.html">Instant
Apps, an href="https://developer.android.com/preview/features/adaptive-icons.html">Adaptive
Icon Wizard, and support for href="https://developer.android.com/preview/features/working-with-fonts.html">XML
Fonts, href="https://developer.android.com/preview/features/working-with-fonts.html">anhref="https://developer.android.com/preview/features/working-with-fonts.html">d
href="https://developer.android.com/preview/features/downloadable-fonts.html">Downloadable
Fonts.






Android Studio 3.0 includes tools for developing with Android O features lets you preview XML font resources in your app.


If you don't plan to use those features, you now have the option of developing
for Android O using href="https://developer.android.com/studio/index.html">Android Studio 2.3.3
from the stable channel. Note that the tools for working with adaptive icons and
downloadable fonts, and XML fonts are not available in Android Studio 2.3.3.


Publish your apps to alpha, beta or production channels in Google
Play



Now that the APIs are final, you can publish APK updates compiling with, and
optionally targeting, API 26 to your alpha, beta, or even production channels in
Google Play. Publishing your O-targeted app during the preview lets you test
compatibility on existing devices and push updates to devices running API 26 --
such as users who are enrolled in the Android Beta program.



To make sure that your updated app runs well on Android O as well as older
versions, a common strategy is to use href="https://developer.android.com/distribute/engage/beta.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">Google
Play's beta testing feature to get early feedback from a small group of
users -- including developer preview users — and then do a staged rollout as you
release the updated app to all users.


How to get the preview update



Through the Android Beta program,
developers and early adopters worldwide will soon be getting Developer Preview 3
on their devices. If you aren't yet enrolled, just visit href="https://android.com/beta">android.com/beta and opt-in your eligible
Android phone or tablet. As always, you can also download and href="https://developer.android.com/preview/download.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog#flash">flash
this update manually. The O Developer Preview is available for Pixel, Pixel
XL, Pixel C, Nexus 5X, Nexus 6P, and Nexus Player.



Thanks so much for all of your feedback so far. Please continue to share href="https://developer.android.com/preview/feedback.html">feedback or
requests as we work towards the consumer release later this summer. We're
looking forward to seeing your apps on Android O!



Read more

6/6/17

Google Play’s policy on incentivized ratings, reviews, and installs


Posted by Kazushi Nagayama, Ninja Spamologist and Bryan Woodward, Policy
Specialist



Ensuring Google Play remains trusted and secure is one of our top priorities.
We've recently announced improvements in fighting href="https://android-developers.googleblog.com/2016/10/keeping-the-play-store-trusted-fighting-fraud-and-spam-installs.html">spam
installs as well as href="https://android-developers.googleblog.com/2016/11/keeping-it-real-improving-reviews-and-ratings-in-google-play.html">fake
ratings & reviews. In order to underscore these announcements and provide
more clarity, we have now updated our href="https://play.google.com/about/storelisting-promotional/ratings-reviews-installs/">Developer
Program Policies on incentivized ratings, reviews, and installs:





Developers must not attempt to manipulate the placement of any apps in the
Store. This includes, but is not limited to, inflating product ratings, reviews,
or install counts by illegitimate means, such as fraudulent or incentivized
installs, reviews and ratings.




Defining an incentivized action



We deem an action to be incentivized if a user is offered money, goods, or the
equivalent in exchange for the action – be it a rating, review or install.
Incentivized ratings and reviews have always been against our policies and we
will continue to take action against them in order to protect the integrity of
our store. Installs done with the intent to manipulate the placement of an app
in Google Play will href="http://android-developers.blogspot.com/2016/10/keeping-the-play-store-trusted-fighting-fraud-and-spam-installs.html">be
detected and filtered.


Incentivized installs as user acquisition



We've observed instances where incentivized installs are utilized solely to
manipulate the placement of apps in Google Play; these instances are a policy
violation. However, we also recognize that incentivized installs can be a
legitimate user acquisition channel for some developers. In order to recognize
these two distinct use cases, we are taking the following approach:


  • Whilst we won't automatically remove apps from the store just because they
    utilize incentivized installs as one of their user acquisition channels, we will
    monitor for, and take action against behaviour that compromises the integrity of
    the store.
  • To address those whose intent we perceive is to manipulate the placements of
    their apps, we will monitor and filter incentivized installs in our systems,
    including removal from the top charts. If warranted, identified apps also may be
    removed from the Store.


Through this approach, we hope to further ensure that the top charts and other
discovery mechanisms on Google Play reflect the reality of the popularity of an
app.



As a general rule, we advise against utilizing incentivized actions.
Incentivized users are a very different user base than users found through other
acquisition channels. In an internal analysis, the Google Research team found
that incentivized users generally have lower retention rates and make fewer
in-app purchases than users found through paid or organic acquisition channels.



For more information on the Google Play policies, please visit the href="https://play.google.com/about/developer-content-policy/">developer policy
center. For tips and best practices to find success on Google Play, visit
the Android Developers website.



How useful did you find this blogpost?



href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=security-05/17&entry.1170596605&entry.646747778=security-05/17" style="color:gold;">★
href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=security-05/17&entry.1170596605&entry.646747778=security-05/17" style="color:gold;">★
href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=security-05/17&entry.1170596605&entry.646747778=security-05/17" style="color:gold;">★
href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=security-05/17&entry.1170596605&entry.646747778=security-05/17" style="color:gold;">★
href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=security-05/17&entry.1170596605&entry.646747778=security-05/17" style="color:gold;">★



Read more

6/1/17

2017 Android Security Rewards

Posted by Mayank Jain and Scott Roberts of the Android Security team


Two years ago, we launched the href="https://www.google.com/about/appsecurity/android-rewards/">Android
Security Rewards program. In its second year, we've seen great progress. We
received over 450 qualifying vulnerability reports from researchers and the
average pay per researcher jumped by 52.3%. On top of that, the total Android
Security Rewards payout doubled to $1.1 million dollars. Since it launched,
we've rewarded researchers over $1.5 million dollars.



Here are some of the highlights from the Android Security Rewards program's
second year:


  • There were no payouts for the top reward for a complete remote exploit chain
    leading to TrustZone or Verified Boot compromise, our highest award amount
    possible.
  • We paid 115 individuals with an average of $2,150 per reward and $10,209 per
    researcher.
  • We paid our top research team, C0RE Team,
    over $300,000 for 118 vulnerability reports.
  • We paid 31 researchers $10,000 or more.


Thank you to all the amazing href="https://source.android.com/security/overview/acknowledgements.html">researchers
who submitted complete href="https://source.android.com/security/overview/updates-resources#report-issues">vulnerability
reports to us last year.


Improvements to Android Security Rewards program



We're constantly working to improve the Android Security Rewards program and
today we're making a few changes to all vulnerability reports filed after June
1, 2017.



Because every Android release includes more security protections and no
researcher has claimed the top reward for an exploit chains in 2 years, we're
excited to increase our top-line payouts for these exploits.


  • Rewards for a remote exploit chain or exploit leading to TrustZone or
    Verified Boot compromise increase from $50,000 to $200,000.
  • Rewards for a remote kernel exploit increase from $30,000 to
    $150,000.


In addition to rewarding for vulnerabilities, we continue to work with the broad
and diverse Android ecosystem to protect users from issues reported through our
program. We collaborate with manufacturers to ensure that these issues are fixed
on their devices through monthly href="https://source.android.com/security/bulletin/">security updates.href="https://source.android.com/security/bulletin/"> Over 100 device models
have a majority of their deployed devices running a security update from the
last 90 days. This table shows the models with a majority of deployed devices
running a security update from the last two months:























































Manufacturer Device
BlackBerry PRIV
Fujitsu F-01J
General Mobile GM5 Plus d, GM5 Plus, General Mobile 4G Dual, General Mobile 4G
Gionee A1
Google Pixel XL, Pixel, Nexus 6P, Nexus 6, Nexus 5X, Nexus 9
LGE LG G6, V20, Stylo 2 V, GPAD 7.0 LTE
Motorola Moto Z, Moto Z Droid
Oppo CPH1613, CPH1605
Samsung Galaxy S8+, Galaxy S8, Galaxy S7, Galaxy S7 Edge, Galaxy S7 Active,
Galaxy S6 Active, Galaxy S5 Dual SIM, Galaxy C9 Pro, Galaxy C7, Galaxy J7,
Galaxy On7 Pro, Galaxy J2, Galaxy A8, Galaxy Tab S2 9.7
Sharp Android One S1, 507SH
Sony Xperia XA1, Xperia X
Vivo Vivo 1609, Vivo 1601, Vivo Y55


Source: Google May 29th, 2017.


Thank you to everyone who helped make Android safer and stronger in the past
year. Together, we made a huge investment in security research that helps
Android users everywhere. If you want to get involved to make next year even
better, check out our detailed href="https://www.google.com/about/appsecurity/android-rewards/">Program
Rules. For tips on how to submit complete reports, see href="https://sites.google.com/site/bughunteruniversity/improve/how-to-submit-an-android-platform-bug-report">Bug
Hunter University.




Read more

Tutorial Mendapatkan Blog Zombie | Gratis Blog Zombie

<!-- Wilujeung Sumping -->
Bagi-Bagi Blog Zombie blogspot yang insyaallah saya akan update setiap harinya,,, di karenakan kmarin -kemarin saya banyak urusan sehingga saya udah ga pernah update lagi di group share blog zombie. Dan alhamdulilah di grup facebook share blog zombie sudah di handel oleh mas Achmad. Bagi yang ingin gabung ke group FB nya inih link nyah juragan ya SHARE BLOG ZOMBIE

Dan kali ini saya bagikan kembali gratis zombie blogspot (zombie cepot) secara gratis. Dan silahkan juragan - juragan pakai untuk keperluan juragan sendiri.

Apa sih kehebatan Zombie Blogspot

Pasti si agan nih dah pada tahu kan , kegunaan dari zombie blogspot ini. Banyak yang di jadikan blog utama. ada yang di jadikan Private Blog Network, Ada juga yang dijadikan sebagai dummy blog utama. itu terserah bagi si agan- agan lah, yang pasti saya bagikan zombie blogspot gratis ini semoga berguna dan bisa naikkin traffik atau penjualan si juragan.

Bagaimana cara mencari blog zombie

Banyak artikel yang menjelaskan tentang bagaimana cara mencari blog-blog zombie. Dan semuanya sangat melelahkan bukan. Jadi agan ga usah tanya bagaimana cara mencari zombie blogspot, yang penting si agan langsung sedot ajah blog zombie yang saya bagikan.
Kalo seandainya Juragan tanya saya, gimana sih cara nyari nya gan??? Pasti saya no respond.

Saya mah yang penting juragan-juragan senang dan saya dapet pahala di bulan suci Ramadhan inih nih.
Sok juragan mangga di tampi tah hidangan nya gan...

Bagi-bagi Zombie Update TGL 1 JUNI 2017


cara mendapatkan blog zombie
Update Zombie
silahkan gan sedot blog zombinya
Update lagi

UPDATE 02 Juni 2017

update gratis blog zombie
22 juni 2017


Read more
loading...