Android 7.1 has already been launched on the Google Pixel and Pixel XL and the developer preview is now available for the Nexus lineup

Google launches Android 7.1 Developer Preview for Nexus 6P, Nexus...

Google has announced the launch of the Android 7.1 Developer Preview for its Nexus Lineup. Earlier this month Google had announced that a developer preview of Android 7.1 would be available to flash soon. Now Google has kept its word and users can finally get the OTA .zip file of the Android Nougat preview on their Nexus 6P, Nexus 5X and Pixel C devices from the Android Beta Program Page.


In a post on Android Developers, Dace Burke, Vice President Engineering, Google stated, “Since 7.1 has already launched on Pixel, we’re delivering the initial Developer Preview at beta quality for the Nexus lineup of devices. The goal is to tease out any device-specific issues. We’ve finalized the new APIs as API Level 25. We’ve opened up publishing on Google Play for apps targeting the new API level, so you can update your apps soon as you are ready.”


On the Android 7.1 Developer Preview users can test their app on the new platform and test new features such as app shortcuts and image keyboard support. There is also an updated SDK along with tools, documentation, samples, emulators and device system images for running apps on supported devices.


To install the developer preview, users can either sign up for the Android Beta program which will give them the ability to download the developer preview OTA. Alternatively users can get the factory images as a TGZ file and use the flast.bat method to test them. Then again users may also download the OTA zip file.




‘).insertAfter(‘.inside-container p:eq(1)’); */
$( ” ).insertAfter(‘.inside-container p:eq(0)’);
});

//method to trunkate the text
function shorten(text, maxLength) {
var ret = text;
if (ret.length > maxLength) {
ret = ret.substr(0,maxLength-3) + “…”;
}
return ret;
}

$(function(){
//function to put utm on DontMiss links
/*if(isDesktop()){
$(‘div.dontMiss > a’).each(function(){
$(this).prop(‘href’, $(this).prop(‘href’)+’?utm_source=within_article&utm_medium=desktop&utm_campaign=related’);
//trunkate dont miss content
var sub = shorten($(this).html(),47);
$(this).html(sub);
});
}else{
$(‘div.dontMiss > a’).each(function(){
$(this).prop(‘href’, $(this).prop(‘href’)+’?utm_source=within_article&utm_medium=mobile&utm_campaign=related’);
});
}*/

//disabled method to append dontmiss links to page content by Mayank
/*$(‘div.dontMiss > a’).each(function(index){
//loop over each list item

// if(index%2 > 0){
// index = index – 1;
// }
if($(‘.inside-container > p:eq(‘+index+’)’).length){
if(isDesktop()){
$(‘.inside-container > p:eq(‘+((index * 2) + 1)+’)’).append(‘

Related: ‘ + $(this).html() + ‘‘ );
}else{
$(‘.inside-container > p:eq(‘+((index * 2) + 1)+’)’).append(‘

Related: ‘ + $(this).html() + ‘‘ );
}
}
});*/
$(‘div.dontMissArea’).hide();

/* if(isDesktop()) {
$(‘div.dontMissArea’).hide();
}else{
$(‘div.dontMissArea’).show();
} */

/*
* ga event tracking on page scroll start and end by Mayank
*/

// Debug flag
var debugMode = false;

// Default time delay before checking location
var callBackTime = 100;

// # px before tracking a reader
var readerLocation = 150;

// Set some flags for tracking & execution
var timer = 0;
var scroller = false;
var endContent = false;
var didComplete = false;

// Set some time variables to calculate reading time
var startTime = new Date();
var beginning = startTime.getTime();
var totalTime = 0;

// Get some information about the current page
var pageTitle = document.title;

// Track the aticle load — disabled
if (!debugMode) {
// ga(‘send’, ‘event’, ‘Reading’, ‘ArticleLoaded’, pageTitle, {‘nonInteraction’: 1});
// console.log(“ga(‘send’, ‘event’, ‘Reading’, ‘ArticleLoaded’, pageTitle, {‘nonInteraction’: 1}”);
} else {
alert(‘The page has loaded. Woohoo.’);
}

// Check the location and track user
function trackLocation() {
bottom = $(window).height() + $(window).scrollTop();
height = $(document).height();

// If user starts to scroll send an event
if (bottom > readerLocation && !scroller) {
currentTime = new Date();
scrollStart = currentTime.getTime();
timeToScroll = Math.round((scrollStart – beginning) / 1000);
if (!debugMode) {
ga(‘send’, ‘event’, ‘Reading’, ‘StartReading’, pageTitle, timeToScroll, {‘metric1’ : timeToScroll});
} else {
alert(‘started reading ‘ + timeToScroll);
}
scroller = true;
}

// If user has hit the bottom of the content send an event
if (bottom >= $(‘.inside-container’).scrollTop() + $(‘.inside-container’).innerHeight() && !endContent) {
currentTime = new Date();
contentScrollEnd = currentTime.getTime();
timeToContentEnd = Math.round((contentScrollEnd – scrollStart) / 1000);
if (!debugMode) {
if (timeToContentEnd = height && !didComplete) {
currentTime = new Date();
end = currentTime.getTime();
totalTime = Math.round((end – scrollStart) / 1000);
if (!debugMode) {
ga(‘send’, ‘event’, ‘Reading’, ‘PageBottom’, pageTitle, totalTime, {‘metric3’ : totalTime});
} else {
alert(‘bottom of page ‘+totalTime);
}
didComplete = true;
}
}

// Track the scrolling and track location
$(window).scroll(function() {
if (timer) {
clearTimeout(timer);
}

// Use a buffer so we don’t call trackLocation too often.
timer = setTimeout(trackLocation, callBackTime);
});
});

advertisements

advertisements



Source link