Run Linux command on Android

Android system have to Terminal application in default. This example provide user to run Linux command using ProcessBuilder, and display the result. But most Linux command not support in Android.

(If you want try the APK only, scroll down to the bottom.)


package com.example.androidrunlinuxcmd;

import java.io.IOException;
import java.io.InputStream;

import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;


public class MainActivity extends ActionBarActivity {

EditText cmdBox;
Button btnRun;
TextView textResult;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

cmdBox = (EditText)findViewById(R.id.cmdbox);
btnRun = (Button)findViewById(R.id.run);
textResult = (TextView)findViewById(R.id.result);
textResult.setTypeface(Typeface.MONOSPACE);

btnRun.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
//Split String from EditText to String Array
String[] cmd = cmdBox.getText().toString().split("\\s+");
try {
String cmdResult = runLinuxCmd(cmd);
textResult.setTextColor(Color.WHITE);
textResult.setText(cmdResult);
} catch (IOException e) {
e.printStackTrace();
textResult.setTextColor(Color.RED);
textResult.setText("Something Wrong!\n"
+ e.getMessage());
}
}});
}

//Run a Linux command and return result
private String runLinuxCmd(String[] command) throws IOException {

StringBuilder cmdReturn = new StringBuilder();

ProcessBuilder processBuilder = new ProcessBuilder(command);
Process process = processBuilder.start();

InputStream inputStream = process.getInputStream();
int c;

while ((c = inputStream.read()) != -1) {
cmdReturn.append((char) c);
}

return cmdReturn.toString();
}
}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.androidrunlinuxcmd.MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />

<EditText
android:id="@+id/cmdbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true" />

<Button
android:id="@+id/run"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Run Linux Command" />

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#A0A0A0" >

<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp" />
</ScrollView>

</LinearLayout>


download filesDownload the files.

Download and Try the APK.

Get memory info

Example to get memory information using MemoryInfo and Runtime.


Where:

  • MemoryInfo.availMem: the available memory on the system.
  • MemoryInfo.totalMem: the total memory accessible by the kernel.
  • Runtime.maxMemory(): the maximum number of bytes the heap can expand to.
  • Runtime.totalMemory(): the current number of bytes taken by the heap.
  • Runtime.freeMemory(): the current number of those bytes actually used by live objects.


package com.example.androidmeminfo;

import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.os.Bundle;

public class MainActivity extends ActionBarActivity {

TextView textMemInfo;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textMemInfo = (TextView) findViewById(R.id.txmeminfo);
textMemInfo.setText(getMemInfo());
}

private String getMemInfo() {
MemoryInfo memoryInfo = new MemoryInfo();
ActivityManager activityManager =
(ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(memoryInfo);

Runtime runtime = Runtime.getRuntime();


String strMemInfo =
"MemoryInfo.availMem = " + memoryInfo.availMem + "\n"
+ "MemoryInfo.totalMem = " + memoryInfo.totalMem + "\n" // API 16
+ "\n"
+ "Runtime.maxMemory() = " + runtime.maxMemory() + "\n"
+ "Runtime.totalMemory() = " + runtime.totalMemory() + "\n"
+ "Runtime.freeMemory() = " + runtime.freeMemory() + "\n";

return strMemInfo;
}

}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.androidmeminfo.MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />
<TextView
android:id="@+id/txmeminfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

</LinearLayout>

OmniROM 5.1 versión "HOMEMADE" para el Galaxy S2 i9100


asimovi ha decidido compartir una versión "homemade" de la OnmiROM basada en Android 5.1 Lollipop para el Galaxy S2 modelo i9100.

La ROM todavía no es estable.


Pasa por el hilo principal en xda para más detalles!




Si quieres darle una probadita aquí te dejo el enlace de descarga > Aquí esta la ROM 





Puedes ver un vídeo de como funciona la ROM (Versión Android 5.0)









Para más detalles visita: xda


NBA 2K15 v.1.0.0.58


La franquicia NBA 2K vuelve con NBA 2K15, nuestra experiencia NBA más realista hasta la fecha para dispositivos móviles. Presentando al MVP de la NBA Kevin Durant y una banda sonora ecléctica seleccionada por el famoso artista y productor Pharrell Williams, NBA 2K15 llega a la cancha con gráficos mejorados, jugabilidad de NBA súperrealista y mucho más... 

¡Te espera una auténtica aventura NBA! En tus manos está reclamar tu destino. #YourTimeHasCome.



Características:

  • Gráficos mejorados, con actualizaciones de los pabellones, de los modelos de los jugadores y sus animaciones y mucho más!
  • Disfruta de la jugabilidad mejorada del modo Partida rápida.
  • Modo Mi CARRERA al completo con características ampliadas y más opciones.
  • Nueva compatibilidad con mandos y ajuste del tamaño del mando virtual, que te permite elegir entre 3 tamaños prefijados. 





 
Novedades en la versión 1.0.0.58
 
 
  • Se ha añadido el modo Temporada.
  • Se ha añadido el modo Blacktop.
  • Se ha añadido el control de alley-oop (toca Pase dos veces).
  • Inicia el Posteo tocando Botar dos veces cuando estés en el poste con el balón.
  • Se ha añadido el botón Defensa intensa a las Partidas rápidas.
  • Correr ya no cansa.
  • Aumenta el cansancio en otras áreas para compensar.
  • Se ha eliminado el botón Turbo (se puede activar manteniendo izquierda/derecha al máximo en el mando de dirección).
  • Se ha cambiado la asignación de algunos controles. Puedes recuperar los controles originales en Opciones > Tipo de mando, en el menú de Pausa.






Descargalo desde Amazon > NBA 2K15




Descargalo aquí > NBA 2K15 v.1.0.0.58





Descargalo aquí > NBA 2K15 v.1.0.0.58






VERSIÓN ANTERIOR


Descargalo aquí > NBA 2K15 v.1.0.0.40





Descargalo aquí > NBA 2K15 v.1.0.0.40 (Torrent) 




POR FAVOR COLABORA! Estamos solicitando sus donaciones para continuar adquiriendo equipos, espero puedan entender que ninguna compañía nos apoya y es muy difícil hacerse de todos los equipos para los cual nos preguntan. Puedes hacer la donación en el siguiente enlace

Read CPU frequency using linux command "cat /sys/devices/system/cpu/cpuX/cpufreq/scaling_cur_freq"

This example read files "/sys/devices/system/cpu/cpu[0..]/cpufreq/scaling_cur_freq" with Linux's cat command, to determine running cpu frequency.


In Linux, there will be some file like this, to show the CPUs frequency.
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq
...

Run adb command:
$ adb shell ls /sys/devices/system/cpu/

It will show some directory named cpu0, cpu1..., it is the number of cpu in your system.

Run adb command, to show the current frequency of cpu0:
$ adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq



package com.example.androidcpu;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.io.InputStream;
import java.util.regex.Pattern;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

TextView textAvProc, textNumOfCpu, textMsg;
Button btnReadCpuFreq;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textAvProc = (TextView)findViewById(R.id.avproc);
textNumOfCpu = (TextView)findViewById(R.id.numofcpu);
textMsg = (TextView)findViewById(R.id.msg);
btnReadCpuFreq = (Button)findViewById(R.id.readfreq);

Runtime runtime = Runtime.getRuntime();
int availableProcessors = runtime.availableProcessors();
textAvProc.setText("availableProcessors = " + availableProcessors);

btnReadCpuFreq.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v) {
readCpuFreqNow();
}});

readCpuFreqNow();
}

private void readCpuFreqNow(){
File[] cpuFiles = getCPUs();
textNumOfCpu.setText("number of cpu: " + cpuFiles.length);

String strFileList = "";
for(int i=0; i<cpuFiles.length; i++){

String path_scaling_cur_freq =
cpuFiles[i].getAbsolutePath()+"/cpufreq/scaling_cur_freq";

String scaling_cur_freq = cmdCat(path_scaling_cur_freq);

strFileList +=
i + ": "
+ path_scaling_cur_freq + "\n"
+ scaling_cur_freq
+ "\n";
}

textMsg.setText(strFileList);
}

//run Linux command
//$ cat f
private String cmdCat(String f){

String[] command = {"cat", f};
StringBuilder cmdReturn = new StringBuilder();

try {
ProcessBuilder processBuilder = new ProcessBuilder(command);
Process process = processBuilder.start();

InputStream inputStream = process.getInputStream();
int c;

while ((c = inputStream.read()) != -1) {
cmdReturn.append((char) c);
}

return cmdReturn.toString();

} catch (IOException e) {
e.printStackTrace();
return "Something Wrong";
}

}

/*
* Get file list of the pattern
* /sys/devices/system/cpu/cpu[0..9]
*/
private File[] getCPUs(){

class CpuFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
if(Pattern.matches("cpu[0-9]+", pathname.getName())) {
return true;
}
return false;
}
}

File dir = new File("/sys/devices/system/cpu/");
File[] files = dir.listFiles(new CpuFilter());
return files;
}
}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.androidcpu.MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />

<TextView
android:id="@+id/avproc"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/readfreq"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Read CPUs Frequency now"/>
<TextView
android:id="@+id/numofcpu"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

</LinearLayout>

Related:
- Java SE version on Raspberry Pi and Linux

adb command to reboot Android device

To deboot connect devies using adb, enter the commnad:
$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED


Notify Pro v.4.0.21 - No te pierdas una notificación


No te pierdas lo más importante, recibir una notificación. Notify Pro te mostrará una ventana emergente de notificación cuando ocurren los eventos. La aplicacion es muy personalizable con muchas opciones para adaptarse a sus necesidades y estilo. 


Características


Notificaciones de Ventana Emergente para:

  • Los mensajes SMS / MMS
  • Llamadas perdidas
  • Calendario Eventos
  • Los clientes K-9 Mail (correo Kaiten, Correo K-9, K-9 Mail Por pura)
  • Notificaciones de Twitter
  • Notificaciones de Facebook
  • Notificaciones de Google Voice

Funciones personalizables:

  • Temas de diferentes ventanas emergentes
  • Botón de personalización
  • Opciones de personalización para los contactos individuales
  • Función de Tiempo de Silencio
  • Lista negra de funciones
  • y muchos más ...





    Novedades
     Varios pequeñas correcciones de errores.
    Traducciones actualizadas.






    Descargala desde el Play Store > Notify Pro





    Descargala aquí > Notify Pro v.4.0.21



    bluestacks

    very interesting app that i would like to share with you today
    its can run android games apps on you pc without any problem 
    its available for both mac and windows users in free of cost 
    freeware that can run install android apk apps on your pc or mac 
    my suggestion try it i know every one has android these days but not battery time :) so 
    try without battery one small things use at least minimum 2gn ram for batter experience else here it is
    for mac HIT ME 
    for windows HIT ME 

    alcohol 120

    alcohol 120 for Microsoft users 
    burn iso make iso make virtual clone drive and much more
    easy to use fully active and fully working 
    Download HIT ME 
    mirror link HIT

    HTC One M9 estará disponible en AT&T a partir del 27 de marzo


    A partir del 27 de marzo, puede solicitar el HTC One M9 de AT&T en www.att.com o en tiendas de AT&T. El HTC One M9 se enviará el mismo día si el pedido se recibe antes de la 1:00 pm CT. El smartphone estará disponible en tiendas de AT&T en todo el país a partir del viernes 10 de abril.

    Precios de HTC One M9



    El HTC One M9 estará disponible a $0 deposito en un plan de AT&T Next de $23.64 con AT&T Next 24, $29.55 con AT&T Next18, o $35.45 con AT&T Next 12. El dispositivo también puede ser comprado en $199.99 con un contrato de dos años, o sin compromiso anual por $708.99. Incluso puede conectar este smartphone premium a la red con SEÑAL LTE más fuerte de la nación por un precio tan bajo como $65 por mes en el AT&T Next junto con un nuevo o existente
    3GB Mobile Share Value plan.


    Repasemos las especificaciones técnicas
     

    • Pantalla LCD3 de 5″ de resolución FullHD 
    • Procesador Qualcomm Snapdragon 810 MSM8994 Octa core a 2GHZ
    • Memoria RAM LPDDR4 de 3GB
    • Memoria interna de 32GB con slot para microSD
    • Cámara trasera 20MP 1.12 µm pixels, 1/2.4″ CMOS f/2.2
    • Cámara delantera 4MP UltraPixel, 2.0 µm pixels, f/2.0
    • Batería de 2840mAh
    • Bluetooth 4.1, NFC y GPS
    • Compatible con redes 4G/LTE-A (300mbps)
    • Android 5.0 Lollipop con HTC Sense
    • Aluminio en rosa, plata, dorado y negro
    • 144.6 x 69.7 x 9.61mm, 157 gramos 
    • NanoSIM







    Para más información: AT&T

    Cómo instalar TWRP Recovery y Rootear el LG G Watch R [TWRP actualizado a la versión 2.8.6.0]


    Ya todos sabemos que recientemente LG lanzó su nuevo Reloj inteligente con Sistema Operativo Android Wear, el  G Watch R. Entre sus características más destacadas tenemos que cuenta con una pantalla pantalla táctil circular de 1.3" p-oled de 245 ppp, compatible con Android 4.3 o superior, batería de 410 mah, resistente al agua y polvo (IP67)




    • Pantalla táctil p-oled activa las 24 horas
    • Esfera circular de 1.3”
    • Sistema operativo android wear, compatible con cualquier dispositivo android kit kat 4.3 o superior
    • Batería 410mah de larga duración con una sola carga
    • Toda la información que necesitas en el momento preciso usando tu voz
    • Sensores: 9-ejes (girómetro /acelerómetro/ brújula), barómetro y Pulsómetro ppg



    [Actualizado] TWRP actualizado a la versión 2.8.6.0


     Qué hay de nuevo:
     

      CAMBIOS para 2.8.6.0:

      • Reglas -fix horario de verano para EE.UU. y Europa (_that) 
      • Superposiciones mulitple -Permitir para cajas emergentes (Dees_Troy) 
      • La entrada de contraseñas patrón estilo -Añadir para descifrar (Tassadar) 
      • Mejoras -Teclado (_that) 
      • Actualización De base AOSP a 5,1 (Dees_Troy) 
      • Tema -Reducir contar hasta 5 y se basan en la escala (Dees_Troy) 
      • Mejoras de escala -Varios (Dees_Troy) 
      • Mejora De manejo de los recursos en la interfaz gráfica de usuario (_that
      • Hacer Scroll bar tamaño proporcional al tamaño de la lista (_that) 
      • Enrolle -Permitir enumera a dejar sin una cabecera (_that) 
      • Hacer Desplazamiento consola por píxel con desplazamiento cinético (_that) 
      • Estilos -Apoyo en XML para reducir el tamaño de XML y mejorar consistentcy (Dees_Troy) 
      • Varios Otras correcciones y mejoras (mdmower, bigbiff, codelover, etc)




          El método de instalación es el mismo del abajo mostrado, solo tienes que cambiar el nombre del recovery. Cualquier duda a la orden!!!








          Descargalo aquí > TWRP 



           --------------------------------------------------------------------------------------------------------------------------------------------------



          Pero continuemos a lo que vivimos... Ya la comunidad desarrolladora comenzó a dar soporte al G Watch R  y ya cuenta soporte para TWRP (no oficial) y cómo rootearlo.


          Cómo instalamos el TWRP Recovery






          • Habilita la depuración ADB en el equipo, esto lo consigues en > Ajustes > Información > le das 7 veces en el Número de Serie, con esto habilitas las Opciones del Programador



          • Ya ahí habilitas la depuración ADB




          • Conectas el G Watch a la PC mediante USB. El teléfono que tengas conectado con el  G Watch R  recibirá un mensaje para parear el equipo, recuerda autorizarlo




          Para que el G Watch instale los drivers recuerda que debes conectarlo a la PC como cuando lo conectas para cargarlo, si por alguna razón tu PC no reconoce el equipo puedes seguir este vídeo tutorial de como añadir los drivers de un equipo que la PC no reconoce > ver vídeo



          • Abre un command prompt desde la carpeta platform-tools haciendo Shitf + Right Click en un espacio vacio de la misma 
          • Escribe "adb devices" para ver si el reloj esta conectado
          • Ahora, escribimos adb reboot-bootloader el equipo entrara en el menú del bootloader
          • En este menu te mueves con las flechas de los lados y escoges con elcirculo del centro







          • Escribimos fastboot oem unlock - Este paso borrará todo lo del teléfono y lo pondrá como cuando lo prendiste la primera vez 
          • Este paso es bien importante, ANTES de proseguir necesitas otra vez habilitar la depuración ADB por lo que debes hacer el proceso nuevamente... NO prosigas con los próximos pasos SIN ANTES hacerlo!!! Recuerda que tienes que parear el teléfono otra vez y autorizar la comunicación entre ellos (Esto hay que hacerlo ya que el teléfono recibió un factory reset al desbloquear el bootloader




          • Nuevamente abrimos un command promt desde la carpeta platform-tools 
          • Copiamos adb devices para ver si el reloj esta comunicándose
          • Luego copiamos  adb reboot-bootloader para que el equipo nuevamente entre en menú de bootloader 
          • Copiamos fastboot flash recovery UNOFFICIAL-openrecovery-twrp-2.8.0.0-lenok.img para instalar el TWRP Recovery en el reloj 
          • Copiamos fastboot reboot para reiniciar el equipo 
          • Ahora vamos a Rootearlo
          • Como ya tenemos el archivo del SuperSU en la misma carpeta platform-tools procedemos a pasarlo al reloj
          • Copiamos adb push UPDATE-SuperSU-v2.37.zip /sdcard/ 
          • Luego ponemos el reloj en modo Recovery TWRP escribiendo adb reboot recovery





          • Ya dentro del menú de TWRP buscamos el archivo  UPDATE-SuperSU-v2.37.zip y los flasheamos como hacemos normalmente desde un celular 







          • Reiniciamos el reloj y listo
          • Ya tenemos instalado el TWRP Recovery y hemos rooteado nuestro LG G Watch R








          Si el LG G Watch R te tira un mensaje que tiene una actualización, primero instalas el Recovery Stock


          • Descarga el Recovery stock para para el G Watch R 4.4.W.2 > recovery.img y pásalo a la carpeta platform-tools 
          • Abre un command prompt desde la carpeta platform-tools haciendo Shitf + Right Click en un espacio vacio de la misma 
          • Escribe "adb devices" para ver si el reloj esta conectado
          • Ahora, escribimos adb reboot-bootloader el equipo entrara en el menú del bootloader
          • Copiamos fastboot flash recovery recovery.img para instalar el recovery stock en el reloj 
          • Copiamos fastboot reboot para reiniciar el equipo
          • Ahora procedemos a actualizarlo!!!



          Para más detalles visita: xda



          ViewPager auto scroll to the first, last or any page

          By calling setCurrentItem() method of ViewPager, you can force it to scroll to any specified page. This example show how to scroll to the first and the last page.


          package com.example.androidviewpagerapp;

          import android.support.v4.view.PagerAdapter;
          import android.support.v4.view.ViewPager;
          import android.support.v4.view.ViewPager.OnPageChangeListener;
          import android.support.v7.app.ActionBarActivity;
          import android.text.method.ScrollingMovementMethod;
          import android.graphics.Color;
          import android.graphics.Typeface;
          import android.os.Bundle;
          import android.view.View;
          import android.view.View.OnClickListener;
          import android.view.ViewGroup;
          import android.view.ViewGroup.LayoutParams;
          import android.widget.Button;
          import android.widget.ImageView;
          import android.widget.LinearLayout;
          import android.widget.TextView;
          import android.widget.Toast;

          public class MainActivity extends ActionBarActivity {

          ViewPager viewPager;
          MyPagerAdapter myPagerAdapter;
          TextView textMsg;
          Button btnToFirst, btnToLast;

          @Override
          protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);

          textMsg = (TextView)findViewById(R.id.msg);
          textMsg.setMovementMethod(new ScrollingMovementMethod());

          viewPager = (ViewPager) findViewById(R.id.myviewpager);
          myPagerAdapter = new MyPagerAdapter();
          viewPager.setAdapter(myPagerAdapter);

          viewPager.setOnPageChangeListener(myOnPageChangeListener);

          btnToFirst = (Button)findViewById(R.id.tofirst);
          btnToLast = (Button)findViewById(R.id.tolast);
          btnToFirst.setOnClickListener(new OnClickListener(){

          @Override
          public void onClick(View v) {
          viewPager.setCurrentItem(0);
          }});
          btnToLast.setOnClickListener(new OnClickListener(){

          @Override
          public void onClick(View v) {
          int indexLast = viewPager.getAdapter().getCount() - 1;;
          viewPager.setCurrentItem(indexLast);
          }});
          }

          OnPageChangeListener myOnPageChangeListener =
          new OnPageChangeListener(){

          @Override
          public void onPageScrollStateChanged(int state) {
          //Called when the scroll state changes.
          }

          @Override
          public void onPageScrolled(int position,
          float positionOffset, int positionOffsetPixels) {
          //This method will be invoked when the current page is scrolled,
          //either as part of a programmatically initiated smooth scroll
          //or a user initiated touch scroll.
          }

          @Override
          public void onPageSelected(int position) {
          //This method will be invoked when a new page becomes selected.
          textMsg.append("onPageSelected:" + position + "\n");
          }};

          private class MyPagerAdapter extends PagerAdapter {

          int NumberOfPages = 5;

          int[] res = { android.R.drawable.ic_dialog_alert,
          android.R.drawable.ic_menu_camera,
          android.R.drawable.ic_menu_compass,
          android.R.drawable.ic_menu_directions,
          android.R.drawable.ic_menu_gallery };
          int[] backgroundcolor = { 0xFF101010, 0xFF202020, 0xFF303030,
          0xFF404040, 0xFF505050 };

          @Override
          public int getCount() {
          return NumberOfPages;
          }

          @Override
          public boolean isViewFromObject(View view, Object object) {
          return view == object;
          }

          @Override
          public Object instantiateItem(ViewGroup container, int position) {

          textMsg.append("instantiateItem:" + position + "\n");

          TextView textView = new TextView(MainActivity.this);
          textView.setTextColor(Color.WHITE);
          textView.setTextSize(30);
          textView.setTypeface(Typeface.DEFAULT_BOLD);
          textView.setText(String.valueOf(position));

          ImageView imageView = new ImageView(MainActivity.this);
          imageView.setImageResource(res[position]);
          LayoutParams imageParams = new LayoutParams(
          LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
          imageView.setLayoutParams(imageParams);

          LinearLayout layout = new LinearLayout(MainActivity.this);
          layout.setOrientation(LinearLayout.VERTICAL);
          LayoutParams layoutParams = new LayoutParams(
          LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
          layout.setBackgroundColor(backgroundcolor[position]);
          layout.setLayoutParams(layoutParams);
          layout.addView(textView);
          layout.addView(imageView);

          final int page = position;
          layout.setOnClickListener(new OnClickListener() {

          @Override
          public void onClick(View v) {
          Toast.makeText(MainActivity.this,
          "Page " + page + " clicked", Toast.LENGTH_LONG)
          .show();
          }
          });

          container.addView(layout);
          return layout;
          }

          @Override
          public void destroyItem(ViewGroup container, int position, Object object) {
          container.removeView((LinearLayout) object);

          textMsg.append("destroyItem:" + position + "\n");
          }

          }
          }

          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          android:paddingBottom="@dimen/activity_vertical_margin"
          android:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          tools:context="com.example.androidviewpagerapp.MainActivity" >

          <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_horizontal"
          android:autoLink="web"
          android:text="http://android-er.blogspot.com/"
          android:textStyle="bold" />

          <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="100dp"
          android:orientation="vertical" >

          <TextView
          android:id="@+id/msg"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:gravity="bottom" />
          </LinearLayout>

          <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal" >

          <Button
          android:id="@+id/tofirst"
          android:layout_width="0dp"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:text="to First" />
          <Button
          android:id="@+id/tolast"
          android:layout_width="0dp"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:text="to Last" />
          </LinearLayout>

          <android.support.v4.view.ViewPager
          android:id="@+id/myviewpager"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />

          </LinearLayout>



          download filesDownload the files.

          My Budget Book v.6.3


          Mi presupuesto no sólo es un bloc de cuentas común. Con esta aplicación usted tiene a la vista ingresos y gastos para así poder administrar mejor el dinero que tenga.

          Hágase una idea de cuánto dinero tiene disponible cada mes durante los próximos meses gracias a las anotaciones simples y anotaciones periódicas. Además puede verlo en un resumen gráfico para poder planear mejor adquisiciones importantes a lo largo de los meses.



          ¿Quién no se ha encontrado en la situación de querer comprar algo y preguntarse si dispone de suficiente dinero? Utilice "Mi presupuesto" para ver su saldo y qué gastos le tocan este mes.

          El nuevo modo de presupuesto te permite ajustar objetivos y límites según distintos criterios y períodos. Por ejemplo, crear un límite mensual para echar gasolina o un límite semanal para tus compras, etc. También puedes definir límites para cuentas, como las tarjetas de crédito, o definir límites según el medio de pago. Además, se puede determinar si los presupuestos recurrentes se deberían transferir al período siguiente. Y además de todo esto, puedes ajustar el límite para presupuestos recurrentes según períodos de tiempo individuales, por si un mes tienes más o menos dinero disponible.


          Características principales


          • Acceso sencillo. No hace falta conexión a Internet. ¡No hace falta registrarse!
          • Disponible en 10 idiomas: Español, English, Deutsch, Português, Français, Italiano, Nederlands, Pусский, Polski, Magyar.
          • Vea su saldo mensual actual cuando se inicia la aplicación.
          • Use el resumen gráfico para planear sus costes de varios meses.
          • Configure el resumen y elija cuántos meses anteriores y futuros se mostrarán.
          • Administre más de una cuenta. Haga anotaciones de ingresos y gastos para el conjunto de cuentas.
          •  Defina el comienzo del mes para poder trabajar de forma más flexible.
          • Consulte las estadísticas en forma de tabla o como gráfico para ver donde ha ido su dinero categorizando los ingresos y gastos. 
          • Filtre sus ingresos y gastos por meses trimestres o años enteros.
          • Use la potente función de búsqueda para buscar. específicamente determinados gastos y/o en períodos concretos.
          • Pase su saldo al mes siguiente. 
          • Administre sus anotaciones periódicas para planear desde hoy los meses venideros.
          • Cree plantillas para registrar sus gastos todavía más rápido.
          • Cree más categorías principales y subcategorías para tener una visión mejor de la evolución de sus costes.
          • Vea gastos importantes en una nota.
          • Proteja sus datos activando la protección por contraseña.
          • Importe los datos que ya tenga con la función de importar CSV(simplemente guarde el archivo CSV en la carpeta "SDCard/Mi presupuesto" y siga el cuadro de diálogo de configuración (se podrá importar en otros formatos si se solicita).
          • Exporte sus datos en los formatos HTML o CSV (a la tarjeta SD).
          • Creen copias de seguridad para tener sus datos seguros.
          • 4 Widgets.


          Mi presupuesto es fácil de manejar y se seguirá mejorando en base a los deseos de los usuarios.






          Nueva función de la foto. Ahora puedes añadir fotos (por ejemplo, recibos) a cada transacción. Para obtener más información, por favor lea el nuevo capítulo "Añadir fotos" del manual integrado.
          Todos los cambios se pueden encontrar en el diálogo "info".





          Descargalo desde el Play Store > My Budget Book





          Descargalo aquí > My Budget Book v.6.3




          Estamos solicitando sus donaciones para continuar adquiriendo equipos, espero puedan entender que ninguna compañía nos apoya y es muy difícil hacerse de todos los equipos para los cual nos preguntan. Puedes hacer la donación en el siguiente enlace

          Implement OnPageChangeListener for ViewPager to monitor the current visible page

          Refer to the former example of "Example of ViewPager with custom PagerAdapter": at start-up, instantiateItem() of MyPagerAdapter will be called twice, with position 0 and 1. When you you scroll page forward, extra instantiateItem() with position of the next invisible page will be called. And when you you scroll page backward, extra instantiateItem() with position of the former invisible page will be called.

          So how can you know when page is scrolled, and which page is currently visible? One approach is to implement OnPageChangeListener for the ViewPager. The onPageSelected(int position) method will be called when a new page becomes selected. But not the first page at start-up.

          Example:


          package com.example.androidviewpagerapp;

          import android.support.v4.view.PagerAdapter;
          import android.support.v4.view.ViewPager;
          import android.support.v4.view.ViewPager.OnPageChangeListener;
          import android.support.v7.app.ActionBarActivity;
          import android.text.method.ScrollingMovementMethod;
          import android.graphics.Color;
          import android.graphics.Typeface;
          import android.os.Bundle;
          import android.view.View;
          import android.view.View.OnClickListener;
          import android.view.ViewGroup;
          import android.view.ViewGroup.LayoutParams;
          import android.widget.ImageView;
          import android.widget.LinearLayout;
          import android.widget.TextView;
          import android.widget.Toast;

          public class MainActivity extends ActionBarActivity {

          ViewPager viewPager;
          MyPagerAdapter myPagerAdapter;
          TextView textMsg;

          @Override
          protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);

          textMsg = (TextView)findViewById(R.id.msg);
          textMsg.setMovementMethod(new ScrollingMovementMethod());

          viewPager = (ViewPager) findViewById(R.id.myviewpager);
          myPagerAdapter = new MyPagerAdapter();
          viewPager.setAdapter(myPagerAdapter);

          viewPager.setOnPageChangeListener(myOnPageChangeListener);
          }

          OnPageChangeListener myOnPageChangeListener =
          new OnPageChangeListener(){

          @Override
          public void onPageScrollStateChanged(int state) {
          //Called when the scroll state changes.
          }

          @Override
          public void onPageScrolled(int position,
          float positionOffset, int positionOffsetPixels) {
          //This method will be invoked when the current page is scrolled,
          //either as part of a programmatically initiated smooth scroll
          //or a user initiated touch scroll.
          }

          @Override
          public void onPageSelected(int position) {
          //This method will be invoked when a new page becomes selected.
          textMsg.append("onPageSelected:" + position + "\n");
          }};

          private class MyPagerAdapter extends PagerAdapter {

          int NumberOfPages = 5;

          int[] res = { android.R.drawable.ic_dialog_alert,
          android.R.drawable.ic_menu_camera,
          android.R.drawable.ic_menu_compass,
          android.R.drawable.ic_menu_directions,
          android.R.drawable.ic_menu_gallery };
          int[] backgroundcolor = { 0xFF101010, 0xFF202020, 0xFF303030,
          0xFF404040, 0xFF505050 };

          @Override
          public int getCount() {
          return NumberOfPages;
          }

          @Override
          public boolean isViewFromObject(View view, Object object) {
          return view == object;
          }

          @Override
          public Object instantiateItem(ViewGroup container, int position) {

          textMsg.append("instantiateItem:" + position + "\n");

          TextView textView = new TextView(MainActivity.this);
          textView.setTextColor(Color.WHITE);
          textView.setTextSize(30);
          textView.setTypeface(Typeface.DEFAULT_BOLD);
          textView.setText(String.valueOf(position));

          ImageView imageView = new ImageView(MainActivity.this);
          imageView.setImageResource(res[position]);
          LayoutParams imageParams = new LayoutParams(
          LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
          imageView.setLayoutParams(imageParams);

          LinearLayout layout = new LinearLayout(MainActivity.this);
          layout.setOrientation(LinearLayout.VERTICAL);
          LayoutParams layoutParams = new LayoutParams(
          LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
          layout.setBackgroundColor(backgroundcolor[position]);
          layout.setLayoutParams(layoutParams);
          layout.addView(textView);
          layout.addView(imageView);

          final int page = position;
          layout.setOnClickListener(new OnClickListener() {

          @Override
          public void onClick(View v) {
          Toast.makeText(MainActivity.this,
          "Page " + page + " clicked", Toast.LENGTH_LONG)
          .show();
          }
          });

          container.addView(layout);
          return layout;
          }

          @Override
          public void destroyItem(ViewGroup container, int position, Object object) {
          container.removeView((LinearLayout) object);

          textMsg.append("destroyItem:" + position + "\n");
          }

          }
          }

          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          android:paddingBottom="@dimen/activity_vertical_margin"
          android:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          tools:context="com.example.androidviewpagerapp.MainActivity" >

          <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_horizontal"
          android:autoLink="web"
          android:text="http://android-er.blogspot.com/"
          android:textStyle="bold" />

          <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="100dp" >

          <TextView
          android:id="@+id/msg"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:gravity="bottom" />
          </LinearLayout>

          <android.support.v4.view.ViewPager
          android:id="@+id/myviewpager"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />

          </LinearLayout>



          download filesDownload the files.

          Next:
          - ViewPager auto scroll to the first, last or any page

          Setting Up Google Play Services, for Eclipse-Android SDK

          This video show how to set up Google Play Services on Eclipse with Android SDK, reference Google document Setting Up Google Play Services.


          Include how to:
          - Install Google Play services SDK using Android SDK Manager.
          - Import library project google-play-services_lib.
          - Add referencing to google-play-services_lib in your project.
          - Modify AndroidManifest.xml, to add <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> under <application>.

          Also override onResume() method, to call GooglePlayServicesUtil.isGooglePlayServicesAvailable() method to test our setup.

          Then finally, try something wrong, in case:
          - With google-play-services_lib project closed, Errors of java.lang.NullPointerException occurred during the build.


          - Without <meta-data...> in AndroidManifest.xml, no error in compiling, but fail in run time.


          - Without referencing to google-play-services_lib, cannot resolve com.google


          Once you've set up your project to reference the library project, you can begin developing features with the Google Play services APIs.

          Tongbu 2.2.0

          free app that can install ipa application in to any idevice like iphone ipod and ipad 
          windows xp, windows 7, and windows 8 or 8.1 dint test it on 9 
          install old iTunes to support this device just install search in apps for application 
          you can also transfer data music video games and others applications from this software
          For Pc Download
          for mac users  Download

          Slider Camera PRO v.1.4


          Dispara fotos profesionales e impresionantes utilizando el fácil de usar slider control. Ahora también contiene un editor de imagen en toda regla con gran cantidad de efectos y posibilidades de ajuste.

          ¿A menudo se ve que sus imágenes son demasiado incoloro y podrían necesitar pequeños ajustes de colores y niveles, sobre todo cuando se les dispara en condiciones de poca luz?



          Slider Camera es una aplicación para resolver este problema! Puede sintonizar la imagen inmediatamente después de que se disparó con deslizadores de fácil uso. No es necesario abrir las fotos en editor de imágenes externo más.


          Usted sólo necesita un pulgar.





          Características:


          • NO ADS
          • Sliders en el modo de foto:
          • Zoom
          • Corrección de la exposición
          • Tome la imagen utilizando la cámara o botones de volumen en el teléfono
          • Pulse dos veces de problemas
          • Modos de flash: activado, desactivado, automático, Antorcha
          • ISO-modos: automático, deportes, ISO100-ISO6400 (todos los modos que admita el teléfono)
          • Modos de enfoque: enfoque automático continuo, toque-de-foco, macro
          • De bloqueo de enfoque es posible, también 5 segundos de bloqueo de enfoque en modo continuo
          • Modo Autofoto y normal
          • Cuadrícula Helper
          • Resoluciones: La mayoría de los comunes
          • El modo de edición rápida ("Quick Adjust" botón aparece después de la foto es tomada por algunos segundos)
          • Sliders en el modo de foto:
          • saturación (Agrega colores mejor)
          • niveles
          • Contraste
          • Recorte de la imagen
          • El intercambio instantáneo
          • Galería de imágenes
          • compartir imágenes
          • Editor de imágenes
          • Auto correcta
          • Efectos
          • Pegatinas
          • Cultivo
          • Enfocar
          • La falta de definición
          • Girar
          • Brillo, contraste, saturación, temperatura de color
          • Pintura
          • Dibujar
          • Texto







          Novedades

          - La cámara de vídeo
          - Correcciones de errores





           Descargalo desde el Play Store > Slider Camera | Slider Camera PRO






          Descargalo aquí > Slider Camera PRO v.1.4





          POR FAVOR COLABORA! Estamos solicitando sus donaciones para continuar adquiriendo equipos, espero puedan entender que ninguna compañía nos apoya y es muy difícil hacerse de todos los equipos para los cual nos preguntan. Puedes hacer la donación en el siguiente enlace