II Java/Android 1 Android 1.1 Google 2003 Android 2005 Google Android 2007 11 Google T- (T-Mobile International) Open Handset Alliance OHA Android 1.2 OS Android 7.0 API (Application Program Interface) API API Android OS API API API Level https://developer.android.com/guide/topics/manifest/uses-sdk-element. html?hl=ja 1.3 Android AndroidStudio IDE (Integrated Development Environment: ) Eclipse IntelliJ IDEA ( ) IDE Eclipse Android Developer Tools (ADT) AndroidStudio 1.4 Linux OS (Kernel) Android ( Android Framework ) Android 1
1: Android 2 Android 2.1 Android 4 Activity Android Service ContentProvider BroadcastReceiver Activity ( ): Android 1 Android Service ( ): ContentProvider ( ): Android SQLite BroadcastReceiver : 2
2.2 Messaging Android Activity Service Android Intent Intent Intent Intent Intent 2.3 app/src/main/androidmanifest.xml AndroidManifest.xml URL https://developer.android.com/guide/topics/manifest/manifest-intro.html?hl=ja 2.4 Android Java res Java res R 2.4.1 Android 1. String Resource: 2. Drawable Resource: 3. Style Resource: UI 4. Menu Resource: 5. Color State List Resource: 6. Value Resource: View id 7. Animation Resource: 8. Raw Resource: 9. Layout Resource: 10. XML Resource: XML 3
2.4.2 Android ID ID XML android:id android:name ID R.{resource type}.{resource id} (id: button1) R.id.button1 2.5 Android Java Android Java Android API Android android URL https://developer.android.com/reference/packages.html 1: Android android.app android.net android.graphics android.hardware android.telephony android.text android.view android.widget 3 View Widget Layout 2 TextView EditText ImageView Button CheckBox RadioButton LinearLayout RelativeLayout FrameLayout 3.1 TextView Button EditText TextView : TextView TextView 4
2: TextView settext settextsize settextcolor setgravity setcompounddrawables TextView settypeface Button : Button Click LongClick Click LongClick LongClick 2 3 1 Button button = (Button) findviewbyid( Viewid ); 2 button.setonclicklistener(new OnClickListener() { 3 public void onclick(view v) { 4 // 5 } 6 }); 1 2 3.2 Android LinearLayout RelativeLayout FrameLayout GridLayout ListView ScrollView LinearLayout: Android View ( ) View 2 LinearLayout LinearLayout LinearLayout FrameLayout: View View 3 FrameLayout View RelativeLayout: View button1 4 2 Android 1 4.1 Android Android : Android 1 onclick 5
(a) LinearLayout (b) 2: LinearLayout Fragment : : 3 4.2 Activity 4.2 oncreate: XML 1 public class MainActivity extends Activity { 2 @Override 3 protected void oncreate(bundle savedinstancestate) { 4 super.oncreate(savedinstancestate); 5 // Activity View 6 setcontentview(r.layout.activity main); 7 } 8 } 6
(a) FrameLayout (b) 3: FrameLayout onstart(onrestart): onresume: onpause: onresume onstop: onrestart onstart ondestroy: kill 7
4: 5 5.1 Activity 1 / SubActivity / 2 Intent intent = new Intent(MainActivity.this, SubActivity.class); 3 startactivity(intent); 1 / Activity Intent 2 Activity / 3 Intent intent = new Intent(); 4 intent.setclassname("com.android.browser", "com.android.browser.browseractivity"); 5 startactivity(intent); 8
5.2 Android OS Web 1 / Web https://hoge / 2 Intent intent = new Intent(); 3 intent.setaction(intent.action VIEW); 4 intent.setdata(uri.parse("https://hoge")); 5 startactivity(intent); 1 / / 2 Intent intent = new Intent(); 3 intent.setaction(intent.action SENDTO); 4 intent.setdata(uri.parse("mailto:example@example.com")); 5 intent.putextra(intent.extra SUBJECT, " "); 6 intent.putextra(intent.extra TEXT, " "); 7 startactivity(intent); 1 / 117 / 2 Intent intent = new Intent(); 3 intent.setaction(intent.action VIEW); 4 intent.setdata(uri.parse("tel:117")); 5 startactivity(intent); 1 / Google PLAY jp.tokyometro / 2 Intent intent = new Intent(); 3 intent.setaction(intent.action VIEW); 4 intent.setdata(uri.parse("market://details?id=jp.tokyometro")); 5 startactivity(intent); 6 Android 6.1 SensorManager 3 Android 9
3: Android 1.6 TYPE ACCELEROMETOR m/s 2 TYPE GYROSCOPE rad/s TYPE LIGHT lux TYPE MAGNETIC FIELD ut TYPE ORIENTATION deg TYPE PRESSURE hpa TYPE PROXIMITY cm TYPE TEMPERATURE Android 2.3 TYPE GRAVITY m/s 2 TYPE LINEAR ACCELERATION m/s 2 TYPE ROTATION VECTOR Android 4.0 TYPE AMBIENT TEMPERATURE TYPE RELATIVE HUMIDITY % 6.2 Android OS OS 1 public class MainActivity extends Activity implements SensorEventListener { 1. 2. 3 3. SENSOR DELAY FASTEST SENSOR DELAY GAME SENSOR DELAY NORMAL SENSOR DELAY UI 1 / / 2 sensormanager = (SensorManager) getsystemservice(context.sensor SERVICE); 3 4 / / 5 List<Sensor> sensorlist = sensormanager.getsensorlist(sensor. TYPE ACCELEROMETER); 6 if (sensorlist.size() > 0) { 7 / 1 / 8 Sensor sensor = sensorlist.get(0); 9 / 3 / 10 sensormanager.registerlistener(this, sensor, SensorManager.SENSOR DELAY UI); 11 } 10
4. Android OS onsensorchanged event.values [X,Y,Z ] [,, ] onsensorchanged onaccuracychanged SensorEventListener onaccuracychanged 1 / 2 1 3 4 / @Override 5 public void onsensorchanged(sensorevent event) { 6 / / 7 8 switch(event.sensor.gettype()) { case Sensor.TYPE ACCELEROMETER: 9 / / 10 accelerometerx.settext( getstring(r.string.accelerometer x) + event.values[0] ); 11 accelerometery.settext( getstring(r.string.accelerometer y) + event.values[1] ); 12 accelerometerz.settext( getstring(r.string.accelerometer z) + event.values[2] ); 13 break; 14 case Sensor.TYPE ORIENTATION: 15 / / 16 azimuth.settext( getstring(r.string.azimuth) + event.values[0] ); 17 pitch.settext( getstring(r.string.pitch) + event.values[1] ); 18 roll.settext( getstring(r.string.roll) + event.values[2] ); 19 break; 20 case Sensor.TYPE PROXIMITY: 21 / / 22 proximity.settext( getstring(r.string.proximity) + event.values[0] ); 23 break; 24 case Sensor.TYPE TEMPERATURE: 25 / / 26 27 temperature.settext( getstring(r.string.temperature) + event.values[0] ); break; 28 } 29 30 } @Override 31 public void onaccuracychanged(sensor sensor, int accuracy) { 32 } 5. Listener 1 // Listener 2 sensormanager.unregisterlistener(this); 11