How Apple Jury Reached a Verdict

Apple Jury Foreman: Here's How We Reached a Verdict

Aug. 27 (Bloomberg) -- The Apple Vs. Samsung Jury Foreman Vel Hogan discusses his experience throughout the billion dollar patent case. He speaks with Emily Chang on Bloomberg Television's "Bloomberg West." (Source: Bloomberg)


CONHECIMENTOS BÁSICOS SOBRE O ANDROID

ANDROID:

  • Um sistema operacional aberto (open source) para telefones móveis baseados em Linux kernel e middleware.
  • Middleware - cuida da comunicação entre diferentes tipos de software (vários fabricantes, as plataformas)
  • Para começar, o Google Android não é, mas a empresa Android Inc.. Fundada (Andy Rubin, Rich Miner, Nick Sears e Chris White) Mais tarde, foi comprado pelo Google, que agora é de um dos principais motores do desenvolvimento em conjunto com a Open Handset Alliance (OHA) (cerca de mais 30 empresas).


Firmware (FW)

  • Parte do software do telefone móvel, controlar todas as suas funções. Sem ela, o telefone seria apenas um pedaço de plástico e uma pilha de componentes eletrônicos.
  • Atualização de firmware normalmente fornece reparar erros críticos (segurança, congelamento do sistema, os aplicativos da queda. Etc) e traz muitas melhorias e novas funcionalidades (suporte, Etc novas aplicações, mudanças nas configurações.).
Kernel ( Núcleo)
  • O núcleo do sistema operacional que controla a actividade de gestão de processos de memória e drivers. Na verdade, supervisiona o telefone funcionando.
  • Temos várias versões modificadas, que enriquecem as funções do kernel novo (como clock do processador), ou melhorar a estabilidade.
Lançador

  • Telefone Ambiente de Trabalho (gráfico sobre o edifício ).
  • Exatamente o que você vê quando você iniciar o telefone, área, widgets, ícones gaveta.
  • Gaveta - aplicações oferecem
  • Widgets - aplicações rodando no seu desktop (relógio, tempo .....)
  • Existem muitos tipos de lançador, cabe a você no que você vai se divertir tanto ADW launcher Launcher, para, Go EX lançador.

Multi-Touch

  • Uma tecnologia que permite ambiente de controle de telefone por dois ou mais dedos sobre o personagem.

Hard reset - Trojhmat

  • Retornando o telefone para as configurações de fábrica.

Root

  • Basta colocar, obter acesso completo ao sistema (os direitos do sistema radicular).
  • Para melhor compreensão é como uma conta de administrador no Windows.


Custom Recovery

  • Modo depois de ligar o telefone móvel utilizado para intervir no sistema.
  • As principais vantagens para piscar Roma, Roma backup atual (NAND) e outros ajustes.


Nandroid - Nandroid backup

  • Backup completo de Roma (Configurações, datas, contatos, tudo é feito o backup).
  • Memória cartão arquivos sobre ele e não fizer backup.
  • Então, cuidado, se a notícia ou qualquer outra coisa armazenada no cartão de modo que você não pode encontrá-lo nenaformátovali e que após restaurar o backup é nandroid você tem aí!


Modo de emergência

  • "O modo de recuperação" ou modo de reflash, flash firmware / ROM, ou para reviver o telefone.

Conceitos básicos sobre o regime do Android:

Flash
  • Atualizando, atualização, carregar update, - firmware, atualização do sistema, fazendo upload de um recurso ou pacote de modificação, Roma .....
  • Ou "upload" sistema "pacote" (geralmente no formato *. Zip *. KDZ) para o telefone.

Reflash
  • O mesmo como Flash, apenas piscando uma mesma versão de qualquer coisa de novo (Re - Flash parcela = recorrente).
  • Exemplo: Eu tenho a versão do firmware versão 10 e 10 re-flash a Ou eu deveria Roma Arc xp v1.0 e flash-lo novamente com a versão 1.0. Isto é chamado reflash.
  • Se usarmos o reflash que você tenha a última versão do firmware que não inclui a língua checa, de modo reflashneme FW (mesma versão) com apenas o apoio da língua checa. Ou quando ocorre um erro na Roma piscando, FW, patch, correção, e assim por diante.

Patch e Fix,

  • Eles podem ser descritas como um "patch" erros a necessidade do sistema ou aplicação.
  • Ou corrigir erros, defeitos.
  • A diferença entre eles é geralmente que o patch adiciona coisas novas (modifica o código fonte, mas não consegue nenhum erro), enquanto a correção "apenas" corrige os erros. Mas isto não pode ser assim.
Tweak 
  • Melhorias (tratamento) do sistema para otimizar o desempenho, definir escondido ou permitir sistema.
  • Exemplos: menor consumo de bateria, melhor trabalhar com a memória RAM, cartão SD mais rápido, ativar a aceleração de hardware, e muitas outras opções.
Expressões comuns apresentadas nas propriedades de 
melhores rom:

Zipalign 

Uma ferramenta que optimiza aplicações (* Apk.), A fim de minimizar o uso de carneiro em uso

JIT

  • Otimiza o sistema de código que é usado com mais freqüência, ou é mais exigente e é posteriormente carregado mais rapidamente.
  • Claro, isso resultou no telefone resposta mais rápida.

ODEX, Deodex

  • ODEX - Aplicação (*. apk) arquivo contendo ODEX otimizado, o que é usado para economia de espaço e mais rápido sistema start-up.
  • Apenas uma falha é a beleza e aplicativos de edição. Como otimizar o arquivo ODEX agora tem o código-fonte em vários lugares e alguns dos "ilegível". Portanto, a funcionalidade e posterior tratamento possível é geralmente tudo custome deodex Roma (-ed).
  • Deodex - Todo o código-fonte estão juntos e pronto para edição. Por exemplo. Para criar um esquema (tema).
  • Contras: aplicações maiores, inicialização mais lento (se eles já perceberam a diferença).

Menu Advanced Power 

  • Adiciona novas opções (por exemplo, reboot, reboot em recuperação personalizado) fora do menu.

Implement ListView NOT extends ListActivity

Example to implement ListView NOT extends ListActivity:

Create /res/layout/row.xml to define the layout of rows in ListView.
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="25sp" />


Modify the layout to add a ListView.
<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">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<ListView
android:id="@+id/mylist"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

</LinearLayout>


package com.example.androidlistview;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

String[] month ={
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"};

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

ListView myListView = (ListView)findViewById(R.id.mylist);
ListAdapter myListAdapter = new ArrayAdapter<String>(
getApplicationContext(),
R.layout.row,
month);
myListView.setAdapter(myListAdapter);
myListView.setOnItemClickListener(new OnItemClickListener(){

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(getApplicationContext(),
parent.getItemAtPosition(position).toString(),
Toast.LENGTH_LONG).show();
}
});
}

}


Implement ListView NOT extends ListActivity

Usando internet do computador via USB usando Easy Tether

                                  Tutorial sem imagens

Bom nesse tutorial estarei ensinando a você conectar-se na internet do seu micro via USB para seu Android,bom para isso siga os  passos abaixo corretamente tutorial fácil e simples.

1º Passo:Baixe o Easy Tether,aqui tem dois links:(Atenção a versão Lite tem limite de velocidade não especificado e bloqueio em alguns sites)

Servidor MediaFire(versão Lite):http://www.mediafire.com/?8rao8vtm5hctrvr

2º Passo:Baixe o programa para seu micro agora nesse link aqui:http://mobile-stream.com/easytether/drivers.html

3º Passo:Instale o aplicativo no seu Android e programa no seu micro

4º Passo:Vá em configurações>Aplicações>desenvolvimento>e marque a opção depuração de USB

5º Passo:Agora é só conectar a USB e ligar o mode de armazenamento USB e curti a internet no seu celular.

New permission for Android 4.1, API Level: 16.

Android 4.1 add the following new permissions:
  • READ_EXTERNAL_STORAGE
    Provides protected read access to external storage. In Android 4.1 by default all applications still have read access. This will be changed in a future release to require that applications explicitly request read access using this permission. If your application already requests write access, it will automatically get read access as well. There is a new developer option to turn on read access restriction, for developers to test their applications against how Android will behave in the future.
  • READ_USER_DICTIONARY
    Allows an application to read the user dictionary. This should only be required by an IME, or a dictionary editor like the Settings app.
  • READ_CALL_LOG
    Allows an application to read the system's call log that contains information about incoming and outgoing calls.
  • WRITE_CALL_LOG
    Allows an application to modify the system's call log stored on your phone
  • WRITE_USER_DICTIONARY
    Allows an application to write to the user's word dictionary.

Details: Android 4.1 APIs | Android Developers : Permissions

Decompiling Android



Decompiling Android looks at the the reason why Android apps can be decompiled to recover their source code, what it means to Android developers and how you can protect your code from prying eyes. This is also a good way to see how good and bad Android apps are constructed and how to learn from them in building your own apps.

This is becoming an increasingly important topic as the Android marketplace grows and developers are unwittingly releasing the apps with lots of back doors allowing people to potentially obtain credit card information and database logins to back-end systems, as they don’t realize how easy it is to decompile their Android code.       
  • In depth examination of the Java and Android class file structures
  • Tools and techniques for decompiling Android apps
  • Tools and techniques for protecting your Android apps

What you’ll learn

  • How to download an Android app and decompile it into its original Java source and HTML5 and CSS code
  • How to protect your Android apps so that others cannot decompile it
  • To identify potential security threats that currently exist and how to avoid them  
  • What tools are available to decompile and protect Android apps
  • The structure of a Java Classfile and an Android classfile
  • How the standard JVM and the Dalvik JVM differ
  • How to create your own Android decompiler and obfuscator

Who this book is for

This book is for Android developers and their managers. It's also for hackers and hobbyist types who wish to see how Android apps are constructed as a means of learning how to build Android apps.

Table of Contents

  1. Laying the Groundwork
  2. Ghost in the Machine 
  3. Inside the DEX File
  4. Tools of the Trade
  5. Decompiler Design
  6. Decompiler Implementation
  7. Case Studies


EditText keep no change after orientation changed

As mentioned in the post "Activity will be re-started when screen orientation changed", onCreate() method will be called when orientation changed, to re-layout the screen. But in case of some views, such as EditText, the Android life-cycle mechanism will restore the states.

orientation changed


Here is a example, there are two EditText in the layout. The first one is assigned with a ID, it will update the TextView once text changed. The second one have no ID assigned. You can notice that the text in the first EditText (with ID) will keep no change after orientation changed, and onTextChanged() method of the TextChangedListener will be called also, to update the TextView.

On the other hand, the second EditText (without ID assigned) will clear to empty when orientation changed.

Layout
<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">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<TextView
android:id="@+id/lasttext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:context=".MainActivity" />
<EditText
android:id="@+id/intext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity" />

</LinearLayout>


package com.example.androidorientationchange;

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

TextView lastText;
EditText inText;

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

lastText = (TextView)findViewById(R.id.lasttext);

inText = (EditText)findViewById(R.id.intext);
inText.addTextChangedListener(new TextWatcher(){

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub

}

@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub


lastText.setText(s);

Toast.makeText(MainActivity.this,
"onTextChanged: " + s, Toast.LENGTH_SHORT).show();
}});

Toast.makeText(MainActivity.this,
"onCreate", Toast.LENGTH_LONG).show();
}

}


Next:
- Retrieve old activity state for configuration change by overriding onRetainNonConfigurationInstance() method