loading...

jueves, 1 de diciembre de 2011

3DMark para Android permiten realizar pruebas de rendimiento en el teléfono, Tablet. Programa de Desarrollo de referencia para crear la primera industria estándar de referencia de rendimiento para juegos para la plataforma Android.

androide

Benchmark 3DMark ® viene con Android ™

Empresas invitadas a unirse a Futuremark ® Programa de Desarrollo de referencia para crear la primera industria estándar de referencia de rendimiento para juegos para la plataforma Android.

Helsinki, Finlandia - 29 de noviembre 2011 - Futuremark ®, el líder mundial en software de rendimiento de referencia, ha anunciado hoy que ha comenzado el desarrollo de 3DMark ® para Android ™ (título provisional), con el objetivo de acercar la industria estándar de referencia de rendimiento en juegos Android impulsado tabletas en 2012. Las empresas involucradas en la fabricación de dispositivos con Android están invitados a unirse al Programa de Desarrollo de referencia de Futuremark para jugar un papel fundamental en el desarrollo de 3DMark para Android, desde las especificaciones iniciales hasta la entrega final. http://www.futuremark.com/bdp/

Grupos de investigación como Gartner e IDC, predicen un crecimiento explosivo de las tabletas en los próximos años. Los Juegos, sin duda, será uno de los principales impulsores de este crecimiento como el rendimiento y la potencia de estos dispositivos ligeros mejora. La feroz competencia entre los dispositivos Android, los fabricantes de hardware y sus proveedores necesitan una referencia objetiva, el desempeño imparcial y con visión de futuro que permitan a sus ingenieros para ofrecer productos competitivos.

Jukka Mäkinen, director general de Futuremark, dijo,

"Desde 1998, la industria del PC ha confiado en 3DMark para medir con precisión el rendimiento de juegos de hardware. En el año 2012 nos traerá 3DMark a la plataforma Android, con un punto de referencia de calidad profesional que se puede confiar en los fabricantes, proveedores y vendedores para proporcionar la medida definitiva de los juegos el rendimiento en Android al tiempo que muestra lo mejor en gráficos en tiempo real y efectos. "

El Software específico de evaluación comparativa proporciona a los ingenieros de la industria y los revisores de prensa con las herramientas para producir resultados consistentes que son repetibles, fiables y relevantes. 3DMark es un edificio de referencia para medir el rendimiento de los juegos. Utiliza las cargas de trabajo a medida diseñados específicamente para las pruebas de tensión hardware de gráficos y cuellos de botella de relieve en el sistema.

3DMark para Android (título provisional)

  • Las Medidas de rendimiento en juegos con la representación de la CPU y las pruebas de la física.
  • Impresionantes gráficos en tiempo real empujando la API OpenGL ES el límite.
  • De servicios complementarios en línea para comparar los resultados entre los dispositivos.
  • Los resultados serán comparables con 3DMark para Windows 8.
  • Actualmente en desarrollo, espera que sea lanzado en el 2012.

El Programa de Desarrollo de referencia (BDP) es una iniciativa de Futuremark para la construcción de alianzas con fabricantes de hardware y la tecnología. El BDP para 3DMark y PCMark para Windows se encuentran empresas como AMD, NVIDIA, Intel, Imagination Technologies, Dell y HP. Un proceso abierto de una estrecha cooperación con los resultados de los miembros del BDP en los puntos de referencia de alta calidad que proporcionan fiabilidad constante, ningún proveedor en los resultados en beneficio tanto de la industria y los consumidores.

Empresas invitadas a unirse al Programa de Desarrollo del Benchmark

3DMark para Android se desarrollará en estrecha cooperación con las empresas del mundo líderes en tecnología. Empresas que se sumen el 3DMark para el Programa de Desarrollo de Android de referencia (BDP) ayudará a definir la especificación de referencia, tengan acceso al desarrollo normal se basa en la evaluación y recibir descuentos en los precios licencia de sitio.

Por favor, visite http://www.futuremark.com/bdp/ para obtener más información sobre cómo unirse al Programa de Desarrollo de referencia o seguir Futuremark en Facebook para las últimas noticias 3DMark:http://www.facebook.com/Futuremark


Acerca de 3DMark

3DMark es punto de referencia más popular del mundo y prueba de PC. 3DMark usa pruebas específicamente diseñados con alta calidad en tiempo real de gráficos para medir con precisión y consistente rendimiento de los juegos de PC. Futuremark 3DMark06 ofrece en la actualidad para Windows XP, 3DMark Vantage para Windows Vista, y 3DMark 11 para Windows 7. Una nueva versión de 3DMark para Windows 8 está actualmente en desarrollo y se espera que sea lanzado en 2012. Para saber más y 3DMark descargar de forma gratuita desde http://www.3dmark.com

Acerca de Futuremark ® Corporation

Futuremark ® Corporation crea puntos de referencia más popular del mundo y las pruebas de rendimiento del PC. Futuremark 3DMark libres ®, y las pruebas PCMark Peacekeeper ™ ha ayudado a millones de personas a medir y mejorar el rendimiento de su PC "para los juegos, los medios de comunicación, las aplicaciones y la web. Futuremark Games Studio crea juegos originales con los nuevos juegos y entretenimiento. El estudio está desarrollando actualmente Gorg imparable para PC, Xbox LIVE ® Arcade y iPad ®. Futuremark cuenta con oficinas en Saratoga, California, y Helsinki, Finlandia.http://www.futuremark.com/

© 2011 Futuremark ® Corporation. Futuremark 3DMark ® y las marcas ® y los logotipos, nombres de personajes y rasgos distintivos, son propiedad exclusiva de Futuremark Corporation. Android es una marca comercial de Google Inc. Los nombres de compañías y productos aquí mencionados pueden ser marcas comerciales de sus respectivos dueños.

CONTACTOS

Europa y resto del mundo:
Jukka Mäkinen, director general de Futuremark
Teléfono: +358 20 759 8250 (GMT +2)
Correo electrónico: Jukka en Futuremark punto com

Futuremark, América del Norte
Baltuch Oliver, Presidente de Futuremark
Teléfono: +1 408 517 0910 (PST)
Email: ollie en Futuremark punto com

C++ ¿Cuál es la diferencia entre ... > NULL, 0, \ 0 y nulo?

NULL es una macro definida en varias cabeceras estándar, 0 es una constante entera, '\ 0' es un carácter constante, y es nulo el nombre de la constante de caracteres. Todos estos son * no * es intercambiable:

NULL se utiliza para los punteros, ya que sólo se puede definir como ((void *) 0) , esto podría causar problemas con nada más que los punteros.

0 se puede utilizar en cualquier lugar, es el símbolo genérico para cada tipo de valor cero, y el compilador resolverá las cosas.

'\ 0' se debe utilizar sólo en un contexto de carácter.

nul no está definido en C o C + +, no se debe utilizar a menos que definirlo de una manera adecuada, como:

# Define nulo '\ 0'

C++ ¿Cuál es la diferencia entre ... > std:: endl vs '\ n' (C + +)

Al escribir la salida en C + +, puede utilizar cualquiera de std:: endl o '\ n' para producir una nueva línea, pero cada uno tiene un efecto diferente.

  • std:: endl envía un carácter de nueva línea '\ n' y vacía el búfer de salida.
  • '\ N' envía el carácter de nueva línea, pero no descarga el buffer de salida.

    La distinción es muy importante si usted está escribiendo mensajes de depuración que usted realmente necesita para ver de inmediato, siempre debe usar std:: endl en lugar de '\ n' para forzar la descarga a llevarse a cabo inmediatamente.

    El siguiente es un ejemplo de cómo usar ambas versiones, aunque no se puede ver el rubor que ocurre en este ejemplo.

    # Include <iostream>

    int principal ( vacío )
    {
    std:: cout << "Prueba 1" <<std:: endl;
    std:: cout << "Prueba 2 \ n" ;
    }

    / *
    * Programa de la producción:
    Prueba 1
    Prueba 2

    *
    * /
  • martes, 29 de noviembre de 2011

    Un ejemplo simple de OpenGL de Android con CLE

    Medio de una extensión del lenguaje común (CLE) como middleware de interfaz, no tiene que preocuparse por JNI. La programación puede ser simple. En este ejemplo se copia de ejemplo NDK hola-GL2 con un pequeño cambio en el uso cle.

    El código de C es el siguiente:

     

    ++ #include "vsopenapi.h"
    …
    -- bool setupGraphics(int w, int h) {
    ++ bool setupGraphics(void *object,int w, int h) {
    …
    }

    -- void renderFrame() {
    ++ void renderFrame(void *object) {
    …
    }

    -- extern "C" {
    -- JNIEXPORT void JNICALL Java_com_android_gl2jni_GL2JNILib_init
    (JNIEnv * env, jobject obj, jint width, jint height);
    -- JNIEXPORT void JNICALL Java_com_android_gl2jni_GL2JNILib_step
    (JNIEnv * env, jobject obj);
    --};

    -- JNIEXPORT void JNICALL Java_com_android_gl2jni_GL2JNILib_init
    (JNIEnv * env, jobject obj, jint width, jint height)
    -- {
    -- setupGraphics(width, height);
    -- }

    -- JNIEXPORT void JNICALL Java_com_android_gl2jni_GL2JNILib_step(JNIEnv * env, jobject obj)
    -- {
    -- renderFrame();
    -- }

    ++ VS_BOOL StarCoreService_Init(class ClassOfStarCore *starcore)
    ++ {
    ++ void *AtomicClass,*step_AtomicFunction,*init_AtomicFunction;
    ++ class ClassOfBasicSRPInterface *BasicSRPInterface;
    ++ class ClassOfSRPInterface *SRPInterface;
    ++
    ++ //--init star core
    ++ BasicSRPInterface = starcore ->GetBasicInterface();
    ++ SRPInterface = BasicSRPInterface ->GetSRPInterface
    (BasicSRPInterface->QueryActiveService(NULL),"","");
    ++
    ++ //---Create Atomic Class, for define function, no attribute
    ++ AtomicClass = SRPInterface ->CreateAtomicObjectSimple
    ("TestItem","GLTestClass",NULL,NULL,NULL);
    ++ step_AtomicFunction = SRPInterface ->CreateAtomicFunctionSimple
    (AtomicClass,"step","void step();",NULL,NULL,VS_FALSE,VS_FALSE);
    ++ init_AtomicFunction = SRPInterface ->CreateAtomicFunctionSimple
    (AtomicClass,"init","VS_BOOL init(VS_INT32 width,VS_INT32 height);",
    NULL,NULL,VS_FALSE,VS_FALSE);
    ++ //---Set Function Address
    ++ SRPInterface -> SetAtomicFunction(init_AtomicFunction,(void *)setupGraphics);
    ++ SRPInterface -> SetAtomicFunction(step_AtomicFunction,(void *)renderFrame);
    ++ SRPInterface -> Release();
    ++ return VS_TRUE;
    ++ }

    ++ void StarCoreService_Term(class ClassOfStarCore *starcore)
    ++ {
    ++ return;
    ++ }


    Android.mk:

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)

    # Here we give our module name and sourcefile(s)
    LOCAL_CFLAGS += -Wno-write-strings -DENV_ANDROID
    LOCAL_CPPFLAGS += -Wno-write-strings -fexceptions -DENV_ANDROID
    LOCAL_LDFLAGS += -Wno-write-strings -DENV_ANDROID

    LOCAL_C_INCLUDES += ../../../../../android/workspace/include

    #--------source file
    MODULE_CXXSRCS := gl_code.cpp

    LOCAL_SRC_FILES := ${MODULE_CXXSRCS}
    LOCAL_LDLIBS := ../../../../../android/workspace/libs/armeabi/libstarlib.a -llog -lGLESv2

    LOCAL_MODULE := gltest

    include $(BUILD_SHARED_LIBRARY)

    java code:

    …
    ++ import com.srplab.www.starcore.*;
    …
    class GL2JNIView extends GLSurfaceView {
    …

    ++ StarCoreFactory starcore;
    ++ static StarObjectClass GlObject;
    …

    private void init(boolean translucent, int depth, int stencil) {

    …
    ++ StarCoreFactory starcore= StarCoreFactory.GetFactory();
    ++ StarServiceClass Service=starcore._InitSimple("test","123",0,0,"");
    ++ Service._CheckPassword(false);
    ++ Service._DoFile("","/data/data/com.srplabgl.gltest/lib/libgltest.so","");
    ++ GlObject = Service._GetObject("GLTestClass")._New();
    …
    }
    …
    private static class Renderer implements GLSurfaceView.Renderer {
    public void onDrawFrame(GL10 gl) {
    ++ GlObject._Call("step");
    }

    public void onSurfaceChanged(GL10 gl, int width, int height) {
    ++ GlObject._Call("init",width,height);
    }

    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    // Do nothing.
    }
    }

    El código de ejemplo se puede descargar desde aquí .

    En los casos más complicados, utilizando el método JNI será mucho más difícil porque los programadores tienen que gestionar las referencias, las devoluciones de llamada, las traducciones de los parámetros. Cle proporciona un método eficaz y flexible para Java llamada otros lenguajes como C / C + +.

    La siguiente imagen es una biblioteca de envoltorio para Android de anti-grano GEOMET, que se publicará poco después.

    Enviar y reciba parámetros con Android Para Mysql PHP

    package com.phpserver;   import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;   import android.app.ListActivity;
    import android.net.ParseException;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;   public class send1 extends ListActivity {
    int ct_id;
    String[] ct_name = null;   @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // setContentView(R.layout.main);
    String result = null;
    InputStream is = null;
    StringBuilder sb = null;
    // http post
    try {
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://10.0.2.2:8086/city.php");
    // httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    is = entity.getContent();
    } catch (Exception e) {
    Log.e("log_tag", "Error in http connection" + e.toString());
    }
    // convert response to string
    try {
    BufferedReader reader = new BufferedReader(new InputStreamReader(
    is, "iso-8859-1"), 8);
    sb = new StringBuilder();
    sb.append(reader.readLine() + "\n");
    String line = "0";
    while ((line = reader.readLine()) != null) {
    sb.append(line + "\n");
    }
    is.close();
    result = sb.toString();
    } catch (Exception e) {
    Log.e("log_tag", "Error converting result " + e.toString());
    }
    // paring data
    JSONArray jArray;
    try {
    jArray = new JSONArray(result);
    JSONObject json_data = null;
    ct_name = new String[jArray.length()];
    for (int i = 0; i < jArray.length(); i++) {
    json_data = jArray.getJSONObject(i);
    ct_id = json_data.getInt("CITY_ID");
    ct_name[i] = json_data.getString("CITY_NAME");
    }
    } catch (JSONException e1) {
    Toast.makeText(getBaseContext(), "No City Found", Toast.LENGTH_LONG)
    .show();
    } catch (ParseException e1) {
    e1.printStackTrace();
    }
    setListAdapter(new ArrayAdapter<string>(this,
    android.R.layout.simple_list_item_1, ct_name));
    ListView lv;
    lv = getListView();
    lv.setTextFilterEnabled(true);
    lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView int position, long id) {
    // When clicked, show a toast with the TextView text
    Toast.makeText(getApplicationContext(),
    ct_name[position] + " wasClicked", Toast.LENGTH_SHORT)
    .show();
    }   });
    }
    }</string>

    -------------------------------------------------------------------------
    código PHP para la recepción de los datos:


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


     

    $hostname_localhost ="localhost";
    $database_localhost ="mydatabase";
    $username_localhost ="root";
    $password_localhost ="";   $localhost = mysql_connect($hostname_localhost,$username_localhost,$password_localhost)
    or
    trigger_error(mysql_error(),E_USER_ERROR);   mysql_select_db("Deal");
    $sql=mysql_query("select * from CITY where CITY_NAME like 'A%'");
    while($row=mysql_fetch_assoc($sql))
    $output[]=$row;
    print(json_encode($output));
    mysql_close();
    ?>


    -------------------------------------------------------------------------
    código de Java para Insertar datos


    :-------------------------------------------------------------------------


     

     package com.Insert;   import java.io.InputStream;
    import java.util.ArrayList;
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import android.app.ListActivity;
    import android.os.Bundle;
    import android.util.Log;   public class Insert extends ListActivity {
    String[] ct_name = null;   @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // setContentView(R.layout.main);

    InputStream is = null;
    // http post
    ArrayList<namevaluepair> nameValuePairs = new ArrayList<namevaluepair>(); nameValuePairs.add(new BasicNameValuePair("c_name","KL"));
    try{
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://10.0.2.2:8086/city1.php");
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    HttpResponse response = httpclient.execute(httppost);
    HttpEntity entity = response.getEntity();
    is = entity.getContent();
    }catch(Exception e){
    Log.e("log_tag", "Error in http connection"+e.toString());
    }
    }

    }


    -------------------------------------------------------------------------
    código PHP para Insertar datos:
    -------------------------------------------------------------------------


     

     $hostname_localhost ="localhost";
    $database_localhost ="mydatabase";
    $username_localhost ="root";
    $password_localhost ="";   $localhost = mysql_connect($hostname_localhost,$username_localhost,$password_localhost)
    or
    trigger_error(mysql_error(),E_USER_ERROR);   mysql_select_db("Deal");
    $sql=mysql_query("INSERT INTO CITY (CITY_NAME)VALUES('".$_REQUEST['c_name']."')");
    //for updation
    //$sql=update CITY set CITY_NAME='".$_REQUEST['c_name']."' where CITY_ID=22
    $r=mysql_query($sql);
    if(!$r)
    echo "Error in query: ".mysql_error();
    mysql_close();
    ?>


    ********************Add


     

     <uses-permission android:name="android.permission.INTERNET" xmlns:android="#unknown"></uses-permission>

    Configuración del navegador del emulador para cargar "localhost" páginas web

    En primer lugar, debe configurar un servidor web para servir las páginas al emulador . Esto implica la instalación y configuración de un servidor web (o servidor de aplicaciones que tiene un servidor web incorporado). Algunos ejemplos bien conocidos son el servidor web Apache, Tomcat y JBoss. Una vez que usted puede utilizar su navegador de Internet local para mostrar una dirección URL como http://localhost:8080/MyTestPage.html , entonces usted está listo para proceder al siguiente paso. Como se explica en red Emulador [ ^ ], la arquitectura de red del emulador incluye un router virtual. Pero es muy fácil de mapa que su servidor web local con el emulador a través del router. El artículo explica que "la dirección 127.0.0.1 en el equipo de desarrollo se corresponde con la interfaz del emulador loopback propia. Si desea acceder a los servicios que se ejecutan en la interfaz de bucle invertido el equipo de desarrollo (aka 127.0.0.1 en su máquina), se debe utilizar el especial .. en lugar de direcciones 10.0.2.2 " Por lo tanto, las dos URLs a continuación deben servir a la misma página, uno a su navegador de la computadora y un emulador de su navegador:

    Ice Cream Sandwich LG aumenta la lista de terminales Optimus que lo recibirán

     

    Parece que Facebook se está convirtiendo en el tablón de anuncios oficial de los fabricantes, ya que tras las pistas dejadas por Sony Ericsson Italia, ahora es LG quien habla también de los terminales que recibirán Ice Cream Sandwich. Para ser exactos, los Optimus Black, Optimus 3D y Optimus LTE recibirán la cuarta versión de Android, acompañando como no podía ser de otra forma al anteriormente anunciado Optimus 2X. Se espera que la lista siga aumentando, sin embargo, LG ya avisa que están evaluando el rendimiento del sistema operativo en los terminales hasta comprobar el nivel de compatibilidad y funcionalidad que alcanza cada uno del os restantes (es evidente que no queremos un teléfono que funcione a pedales). Ahora sólo queda esperar la fecha de lanzamiento de la actualización, pero para eso tendremos que esperar a otro anuncio, posiblemente el mes que viene.


    [Vía
    PocketNow]