Transcript Wykład 2

Tworzenie aplikacji mobilnych
Android
Struktura Projektu z wykorzystaniem
Eclipse
Tworzenie projektu
• android create project --target "Google
Inc.:Google APIs:7" --path Skeleton/Now􀀁
--activity Now --package
com.commonsware.android.skeleton
Struktura projektu
• AndroidManifest.xml: - plik opisujący aplikację,
komponety z jakich jest zbudowana (activities,
services) itp.)
• bin/: Katalog z wynikiem kompilacji
• libs/: Katalog z bibliotekami (JAR) wymaganymi
przez aplikację
• res/: Katalog z zasobami aplikacji (icony, layouty,
itp.) wkompilowane później w aplikację
• src/: Katalog z plikami źródłowymi
• assets/: Katalog ze statycznymi plikami
wkompilowanymi w aplikację
• gen/: Katalog z plikami generowanymi przez
narzędzia SDK Androida
• build.xml, *.properties: Pliki wykorzystywane
przez kompilację (Antbased)
• proguard.cfg: Plik wykorzystywany przez
obfuscator ProGuard
Po kompilacji
• bin/classes/: Przechowuje skompilowane klasy
java (.class)
• bin/classes.dex: Przechowuje plik
wykonywalny stworzony ze skompilowanych
klas Java
• bin/yourapp.ap_: Przechowuje zasoby aplikacji
spakowane w formacie ZIP
• bin/yourapp-*.apk: Faktyczna aplikacja na
system Android
Uruchomienie aplikacji
Manifest
• <supports-screens>
• <uses-sdk>
– android:minSdkVersion
– android:targetSdkVersion
Activity
package pf.android;
import android.app.Activity;
import android.os.Bundle;
public class FirstAndroidAppActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Dodanie przycisku i obsługa zdarzeń
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;
public class Now extends Activity implements View.OnClickListener {
Button btn;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
btn=new Button(this);
btn.setOnClickListener(this);
updateTime();
setContentView(btn);
}
public void onClick(View view) {
updateTime();
}
private void updateTime() {
btn.setText(new Date().toString());
}
}