古いリリースノート¶
- CHANGE
後方互換性のない変更
- UPDATE
後方互換性がある変更
- ADD
後方互換性がある追加
- FIX
バグ修正
2021.3¶
- 日時:
2021-10-07
- 対応 Sora:
2021.1 以降
- 対応 libwebrtc:
m93.4577.8.2
[UPDATE] libwebrtc を 93.4577.8.2 にアップデートしました
[FIX] stats メッセージに含まれる統計情報のフォーマットを修正しました
2021.2¶
- 日時:
2021-08-05
- 対応 Sora:
2021.1
- 対応 libwebrtc:
m92.4515.9.1
[CHANGE]
SoraMediaChannel
のコンストラクタ引数channelId
の型を String? から String に変更しました[CHANGE] connect メッセージの定義を以下の通り見直しました
connectionId
の型を String? から String に変更しましたsdp_error
を削除しました
[UPDATE] スポットライト接続時に
spotlight_focus_rid
/spotlight_unfocus_rid
を指定できるようにしました[UPDATE] offer に mid が含まれる場合は、 mid を利用して sender を設定するようにしました
[UPDATE] libwebrtc を 92.4515.9.1 にアップデートしました
[UPDATE] com.android.tools.build:gradle を 4.2.2 にアップデートしました
[UPDATE] JCenter サービスの利用を終了しました
[UPDATE] AES-GCM を利用可能にしました
[ADD] データチャネルシグナリングに対応しました
data_channel_signlaing
,ignore_disconnect_websocket
パラメータ設定を追加しましたonDataChannel
コールバックを実装しました各 label に対応するデータチャネル関係のコールバックを実装しました
WebSocket 側の
type:switched
受信の処理を追加しました
[FIX] 終了前にシグナリング Disconnect メッセージ送信を追加しました
状態により WebSocket, DataChannel どちらかで送信するよう変更
[FIX] offer に data_channels が含まれない場合に対応しました
[FIX] 接続 / 切断を検知する処理を改善しました
修正前は
IceConnectionState
を参照していましたが、PeerConnectionState
を参照するように修正しましたSoraErrorReason
の以下の値を参照するコードは修正が必要ですICE_FAILURE
=>PEER_CONNECTION_FAILED
ICE_CLOSED_BY_SERVER
=>PEER_CONNECTION_CLOSED
ICE_DISCONNECTED
=>PEER_CONNECTION_DISCONNECTED
[FIX]
NotificationMessage
にturnTransportType
を追加しました[FIX]
SoraSpotlightOption
からsimulcastRid
を削除しましたスポットライトでは simulcast_rid を指定しても動作しないためです
[FIX] 接続成功時のコールバックが複数回実行されないように修正しました
修正前は、 PeerConnectionState が CONNECTED に遷移する度に PeerChannel.Listener.onConnect が実行される可能性があったため初回のみコールバックが実行されるように修正しました
2021.1.1¶
- 日時:
2021-07-01
- 対応 Sora:
2021.1
- 対応 libwebrtc:
m89.4389.7.0
[CHANGE]
SimulcastRid
の定義をjp.shiguredo.sora.sdk.channel.signaling.message
からjp.shiguredo.sora.sdk.channel.option.SoraVideoOption
に変更しました[FIX] Sora への接続時に simulcast_rid を指定するとエラーになる問題を修正しました
2021.1¶
- 日時:
2021-03-31
- 対応 Sora:
2020.3
- 対応 libwebrtc:
m89.4389.7.0
[UPDATE]
libwebrtc
を 89.4389.7.0 にアップデートしました[UPDATE]
Kotlin
を 1.4.31 にアップデートしました[UPDATE]
Gradle
を 6.8.3 にアップデートしました[UPDATE]
com.android.tools.build:gradle
を 4.1.2 にアップデートしました[UPDATE]
com.squareup.okhttp3:okhttp
を 4.8.1 にアップデートしました[UPDATE]
io.reactivex.rxjava2:rxjava
を 2.2.19 にアップデートしました[UPDATE]
io.reactivex.rxjava2:rxkotlin
を 2.4.0 にアップデートしました[UPDATE]
com.github.ben-manes:gradle-versions-plugin
を 0.38.0 にアップデートしました[UPDATE]
org.ajoberstar.grgit:grgit-gradle
を 4.1.0 にアップデートしました[UPDATE]
com.squareup.okhttp3:okhttp
を 4.9.1 にアップデートしました[UPDATE]
io.reactivex.rxjava2:rxjava
を 2.2.21 にアップデートしました[UPDATE] シグナリング pong に統計情報を含めるようにしました
[UPDATE] 最新のサイマルキャストの仕様に追従しました
[UPDATE] サイマルキャストで VP8 / H.264 (ハードウェアアクセラレーション含む) に対応しました
[UPDATE] サイマルキャストで TextureBuffer のエンコードに対応しました
[UPDATE] 最新のスポットライトの仕様に追従しました
[UPDATE]
SoraMediaOption.enableSimulcast()
に引数を追加しました[UPDATE]
SoraMediaOption.enableSpotlight()
を追加しました[UPDATE]
SoraSpotlightOption
を追加しました[UPDATE]
SoraMediaChannel.connectionId
を追加しました[UPDATE] 廃止予定のプロパティに Deprecated アノテーションを追加しました
ChannelAttendeesCount.numberOfUpstreams
ChannelAttendeesCount.numberOfDownstreams
NotificationMessage.numberOfUpstreamConnections
NotificationMessage.numberOfDownstreamConnections
[FIX] NotificationMessage に漏れていた以下のフィールドを追加しました
authn_metadata
authz_metadata
channel_sendrecv_connections
channel_sendonly_connections
channel_recvonly_connections
[FIX] サイマルキャストパラメータ
active: false
が無効化されてしまう問題を修正しました[FIX] スポットライトレガシーに対応しました
スポットライトレガシーを利用する際は
Sora.usesSpotlightLegacy = true
を設定する必要がありますスポットライトレガシーは 2021 年 12 月に予定されている Sora のアップデートで廃止されます
2020.3¶
- 日時:
2020-07-04
- 対応 Sora:
2020.1
- 対応 libwebrtc:
m83.4103.12
[CHANGE] 古いロール
upstream
,downstream
を削除しました[CHANGE]
SoraAudioOption.audioSource
のデフォルト値をVOICE_COMMUNICATION
に変更しました[UPDATE]
libwebrtc
を 83.4103.12.2 にアップデートしました[UPDATE]
com.android.tools.build:gradle
を 4.0.0 にアップデートしました[UPDATE]
com.squareup.okhttp3:okhttp
を 4.7.2 にアップデートしました[ADD] 新しいロール
sendonly
,recvonly
,sendrecv
に対応しました
2020.2¶
- 日時:
2020-05-19
[CHANGE]
compileSdkVersion
を 29 に変更しました[CHANGE]
targetSdkVersion
を 29 に変更しました[CHANGE] シグナリング connect に含めるクライアント情報を変更しました
[UPDATE]
Kotlin
を 1.3.72 にアップデートしました[UPDATE]
Dokka
を 0.10.1 にアップデートしました[UPDATE]
libwebrtc
を 79.5.1 にアップデートしました[UPDATE]
com.android.tools.build:gradle
を 3.6.3 にアップデートしました[UPDATE]
com.squareup.okhttp3:okhttp
を 4.6.0 にアップデートしました[UPDATE]
junit:junit
を4.13
にアップデートしました[UPDATE] Offer SDP 生成失敗時、エラーメッセージをシグナリング connect の
sdp_error
に含めて送信するよう変更しました
2020.1¶
- 日時:
2020-04-07
[UPDATE]
com.android.tools.build:gradle
を 3.5.3 にアップデートしました[ADD]
CameraCapturerFactory
にフロント/リアカメラの優先順位のオプションを追加しました[ADD] サイマルキャスト配信のエンコーダー設定変更用コールバックを追加しました
SoraMediaChannel.Listener#onSenderEncodings()
[ADD] 定数
SoraErrorReason.ICE_DISCONNECTED
を追加しました[ADD]
SoraMediaChannel.Listener
にonWarning
メソッドを追加しましたこのバージョンでは
ICE_DISCONNECTED
の通知のみに利用していますネットワークが不安定であることを UI に伝えることを想定ユースケースとしています
デフォルト実装は処理なしです
[FIX] IceConnectionState = disconnected では切断処理を行わないよう変更します
1.x¶
1.10.0¶
- 日時:
2019-11-14
- 対応 Sora:
19.04.9
- 対応 libwebrtc:
75.16.0
UPDATE¶
minSdkVersion
を 21 にアップデートしました -com.squareup.okhttp3:okhttp
4.2.2 がminSdkVersion
21 以上にのみ対応するためlibwebrtc を 78.8.0 にアップデートしました
Android Studio 3.5.1 に対応しました
Kotlin を 1.3.50 にアップデートしました
Dokka を 0.10.0 にアップデートしました
com.android.tools.build:gradle
を 3.5.2 にアップデートしましたcom.squareup.okhttp3:okhttp
を 4.2.2 にアップデートしましたcom.google.code.gson:gson
を 2.8.6 にアップデートしましたorg.robolectric:robolectric
を 4.3.1 にアップデートしましたAudioDeviceManager 生成時のパラメータをオプション
SoraAudioOption
に追加しました -audioSource
:android.media.MediaRecorder.AudioSource
のいずれか -useStereoInput
: boolean -useStereoOutput
: boolean
ADD¶
シグナリング connect メッセージに
sdk_type
,sdk_version
とuser_agent
を追加しましたシグナリング connect メッセージに
audio.opus_params
を追加しました1:N サイマルキャストの視聴に対応しました
CHANGE¶
時雨堂ビルドの libwebrtc ライブラリ名称を変更しました - 旧:
sora-webrtc-android
、 新:shiguredo-webrtc-android
-transitive = true
でsora-android-sdk
に依存している場合はアプリケーション側の変更は不要ですシグナリング connect メッセージから
simulcast_rid
を削除しました
FIX¶
視聴のみかつ H.264 を指定した場合に接続できない現象を修正しました
1.9.0¶
- 日時:
2019-08-02
- 対応 Sora:
19.04.9
- 対応 libwebrtc:
75.16.0
UPDATE¶
libwebrtc を 75.16.0 にアップデートしました
Android Studio 3.4.2 に対応しました
Kotlin を 1.3.41 にアップデートしました
com.squareup.okhttp3:okhttp
を 3.14.2 にアップデートしましたio.reactivex.rxjava2:rxjava
を 2.2.10 にアップデートしましたandroidx.test:core
を 1.2.0 にアップデートしましたorg.robolectric:robolectric
を 4.3 にアップデートしました
ADD¶
SoraMediaOption
にaudioBitrate
設定を追加しましたSoraMediaOption
にaudioOption: SoraAudioOption
を追加しましたSoraAudioOption
に libwebrtc 独自の音声処理設定のキーを追加しましたmedia constraints キーとの対応は以下の通りです:
ECHO_CANCELLATION_CONSTRAINT
:"googEchoCancellation"
設定のキーAUTO_GAIN_CONTROL_CONSTRAINT
:"googAutoGainControl"
設定のキーHIGH_PASS_FILTER_CONSTRAINT
:"googHighpassFilter"
設定のキーNOISE_SUPPRESSION_CONSTRAINT
:"googNoiseSuppression""
設定のキー
SoraAudioOption
に音声処理に関するインターフェースを追加しましたAudioDeviceModule インスタンスの設定、デフォルトは null で
JavaAudioDeviceModule
を内部で生成しますハードウェアの AEC (acoustic echo canceler) の利用有無を設定します。デフォルトでは可能であれば利用します。
ハードウェアの NS (noise suppressor) の利用有無を設定します。デフォルトでは可能であれば利用します。
libwebrtc 独自の音声処理の無効化設定、デフォルトはすべて有効です。 -
audioProcessingEchoCancellation
:"googEchoCancellation"
に対応しました -audioProcessingAutoGainControl
:"googAutoGainControl"
に対応しました -audioProcessingHighpassFilter
:"googHighpassFilter"
に対応しました -audioProcessingNoiseSuppression
:"googNoiseSuppression""
に対応しましたこれらの設定の組み合わせ方によっては、端末依存でマイクからの音声が取れないことがあるため、 設定を決める際には実端末での動作確認が必要です
SoraErrorReason
に音声の録音(audio record)、音声トラック(audio track)のエラーを追加しましたSoraMediaChannel.Lister
のコールバックにonError(SoraErrorReason, String)
を追加しましたデフォルトで何もしない実装のため、ソースコード上の変更は不要です
このバージョンでは
JavaAudioDeviceModule
の audio record, audio track 関連のエラーが このコールバックを通して通知されます。
rid-based simulcast に部分的に対応しました
現状では、ソフトウェアエンコーダーのみで動作します。
映像コーデックは VP8 のみの対応しています。
fixed resolution と一緒に使うとクラッシュ(SEGV)することが分かっています。
関連 issue: 10713 - Transceiver/encodings based simulcast does not work in desktop sharing
closed になっているため、libwebrtc の最新版では修正されている可能性があります。
getStats を定期的に実行し統計を取得する API を追加しました
CHANGE¶
org.webrtc.PeerConnectionFactory
に明示的にJavaAudioDeviceModule
を渡すように変更しましたlibwebrtc にて
org.webrtc.LegacyAudioDeviceModule
が無くなり、明示的に audio device module を 指定するよう変更されたため。7452 - Move Android audio code to webrtc/sdk/android - webrtc - Monorail - https://bugs.chromium.org/p/webrtc/issues/detail?id=7452
Use JavaAudioDeviceModule as default (Ib99adc50) · Gerrit Code Review - https://webrtc-review.googlesource.com/c/src/^/123887
org.webrtc.audio.JavaAudioDeviceModule
のHardwareAcousticEchoCanceler
,HardwareNoiseSuppressor
をデフォルトで有効にしました無効化したい場合には、個別に
SoraAudioOption
で設定しSoraMediaOption
経由で設定を渡せます。
audio source 作成時のデフォルト
MediaConstraint
で、libwebrtc 独自の音声処理をすべて有効化しました無効化したい場合には、個別に
SoraAudioOption
で設定しSoraMediaOption
経由で設定を渡せます。
1.8.1¶
- 日時:
2019-04-18
- 対応 Sora:
19.04.0
- 対応 libwebrtc:
73.10.1
UPDATE¶
libwebrtc を 73.10.1 にアップデートしました
encoder/decoder の対応コーデックのログ出力を追加しました
Kotlin を 1.3.30 にアップデートしました
Android Studio 3.4.0 に対応しました
SoraMediaOption
にVideoEncoderFactory
、VideoDecoderFactory
を指定するオプションを追加しました[プレビュー版]
SoraMediaChannel
のコンストラクタに@JvmOverloads
を追加し、Java からオーバーロードされて見えるよう 変更しましたこれにより第 6 引数のタイムアウト値を省略したコンストラクタを呼び出せるようになります。
シグナリング connect メッセージの metadata を文字列だけでなく任意の型を受け付けるよう変更しました
値は gson で変換できる必要があります。
Map
,List
は利用できます。文字列化された JSON を受け取った場合には、1.8.0 までと同様に、そのまま文字列値として取扱います。
シグナリング connect メッセージに
client_id
フィールドを追加しました - Sora 19.04 より前のバージョンでは、このフィールドを文字列に設定するとエラーになりますシグナリング connect メッセージの
signaling_notify_metadata
をSoraMediaChannel
コンストラクタから 指定できるようにしました値は gson で変換できる必要があります。
Map
,List
は利用できます。オプション引数のため、これまでのコードでは指定なしで動作します。
Java で書かれたアプリケーションでは
SoraMediaChannel
のコンストラクタでsignalingNotifyMetadata
を を指定するにはclientId
を渡す必要があります。アプリケーションとして指定しない場合には null を渡すことで シグナリング connect メッセージにはclient_id
が含まれません。
シグナリングパラメータのフィールド、型を Sora 19.04 に合わせ更新しました
型定義は https://sora-doc.shiguredo.jp/SIGNALING_TYPE を参照してください。
gradle.properties.example
に Robolectric の設定android.enableUnitTestBinaryResources=true
を追加しましたSora 19.04.0 での
connection_id
導入に伴い、ローカルトラック判定をconnection_id
で行うよう変更しました以前のバージョンでも動作するよう、offer に
connection_id
がない場合はこれまでどおりclient_id
を使います。
シグナリング通知機能の
network.status
に対応しましたcom.squareup.okhttp3:okhttp
を 3.14.1 にアップデートしましたio.reactivex.rxjava2:rxandroid
を 2.1.1 にアップデートしましたio.reactivex.rxjava2:rxjava
を 2.2.8 にアップデートしました
CHANGE¶
kotlin-stdlib-jdk7
依存をkotlin-stdlib
に変更しましたsora-android-sdk の
minSdkVersion
が 16 であるためです
ADD¶
CameraCapturerFactory
に解像度維持を優先するオプションを追加しました
1.8.0¶
- 日時:
2019-02-01
- 対応 Sora:
18.10.5
- 対応 libwebrtc:
71.16.0
UPDATE¶
libwebrtc を 71.16.0 にアップデートしました
Kotlin を 1.3.20 にアップデートしました
libwebrtc の M72 をスキップしました
バグにより AAR のビルドはできるが動作しないためです。
そのバグは M73 branch では修正済みです: https://webrtc-review.googlesource.com/c/112283
com.squareup.okhttp3:okhttp
を 3.12.1 にアップデートしましたio.reactivex.rxjava2:rxjava
を 2.2.6 にアップデートしましたAndroid Studio 3.3 に対応しました
com.github.dcendents:android-maven-gradle-plugin
を 2.1 にアップデートしましたWebRTC 1.0 spec に一部追従しました
offerToReceiveAudio/offerToReceiveVideo から Transceiver API に変更しました。
onTrack, onRemoveTrack は libwebrtc android sdk で対応されていないため見送っています。
CHANGE¶
SDP semantics のデフォルト値を Unified Plan に変更しました
upstream のシグナリングで audio や video が false の場合でも、他の配信者の audio や video のトラックを受信する SDP が Sora から offer されるように変更されます。
Plan B のときには audio false のときには audio track が SDP に含まれず、 video が false のときには video のトラックが含まれていませんでした。 これは Plan B の制限による挙動でした。
1.7.1¶
- 日時:
2018-10-18
- 対応 Sora:
18.04.12
- 対応 libwebrtc:
70.14.0
UPDATE¶
libwebrtc を 70.14.0 にアップデートしました
com.google.code.gson:gson
を 2.8.5 にアップデートしましたcom.squareup.okhttp3:okhttp
を 3.11.0 にアップデートしましたio.reactivex.rxjava2:rxandroid
を 2.1.0 にアップデートしましたio.reactivex.rxjava2:rxjava
を 2.2.2 にアップデートしましたio.reactivex.rxjava2:rxkotlin
を 2.3.0 にアップデートしました
ADD¶
Unified Plan に試験的に対応しました
正式対応ではありません
FIX¶
Sora で turn が無効の場合にシグナリングに失敗する問題を修正しました
1.7.0¶
- 日時:
2018-08-14
- 対応 Sora:
18.04.10
- 対応 libwebrtc:
68.10.1.1
UPDATE¶
Android Studio 3.1.4 に対応しました
libwebrtc を 68.10.1.1 にアップデートしました
ADD¶
webrtc-buildのバージョンと webrtc git のハッシュのログを追加しました
CHANGE¶
SoraSerivceUtil.isRunning を削除しました
Oreo で
ActivityManager#getRunningSerivces
が deprecated になったためこのユーティリティを利用していた場合はソースコードの変更が必要です
1.6.0¶
- 日時:
2018-07-24
- 対応 Sora:
18.04.10
- 対応 libwebrtc:
67.28.0.1
UPDATE¶
Android Studio 3.1.3 に対応しました
Kotlin を 1.2.51 にアップデートしました
PeerConnectionFactory を builder から作るよう修正しました
libwebrtc を 67.28.0.1 にアップデートしました
ADD¶
時雨堂ビルドの libwebrtc AAR を jitpack.io 上にホストし、本 SDK からは build.gradle での依存としました
本 SDK への依存設定に transitive を使っていないアプリケーションは別途依存を追加する必要があります
connect オプションの spotlight に対応しました
映像の解像度の選択肢を増やしました
SoraMediaOption に
enableCpuOveruseDetection
を追加しましたSoraMediaOption に
sdpSemantics
を追加しましたただし動作確認は Plan-B (
PLAN_B
) のみ
SoraMediaOption に
tcpCandidatePolicy
を追加しました - もともと内部的に用いていたオプションの格上げです - デフォルト値はこれまでと同様にENABLED
としていますNotificationMessage
にclientId
を追加しました必須項目です (SDK が設定します)
NotificationMessage
にaudio
,video
,metadata
,metadataList
,channelId
,spotlightId
,fixed
を追加しましたすべてオプション(nullable)項目です
SoraMediaChannel
にシグナリング通知機能のメッセージ受信コールバックを追加しましたonNotificationMessage
を実装することで独自のメッセージ処理が可能です
### CHANGE
NotificationMessage
のrole
,connectionTime
,numberOfConnections
,numberOfUpstreamConnections
,numberOfDownstreamConnections
フィールドをオプション(nullable)に変更しました型として下位互換性を壊す変更です これらのフィールドを参照しているソースコードは修正の必要があります
スナップショット機能を削除しました
MediaStream#label()
の代わりに id を使うよう変更しましたlibwebrtc の変更の影響です
label()
を用いているアプリケーションコードはid
に変更してください
### FIX
自分のストリーム判断に配信ストリームがある場合のみの条件があったが、マルチストリームの場合という 条件に置き換えました
single stream (pub, sub) およびマルチストリームではこの変更は影響ありません
スポットライトのみ影響があり、視聴モードでも自分の
clientId
が MSID のストリームについてonAddRemotestream
イベントを発火させないようになっています
1.5.4¶
- 日時:
2018-03-28
- 対応 Sora:
18.02.2
- 対応 libwebrtc:
66.8.1
UPDATE¶
PeerConnectionFactory.createPeerConnection/3 deprecated に対応しました
1.5.3¶
- 日時:
2018-03-28
- 対応 Sora:
18.02.2
- 対応 libwebrtc:
66.8.1
UPDATE¶
libwebrtc を 66.8.1 にアップデートしました
Kotlin を 1.2.31 にアップデートしました
1.5.2¶
- 日時:
2018-03-07
- 対応 Sora:
18.02
- 対応 libwebrtc:
64.5.0
UPDATE¶
libwebrtc を 64.5.0 にアップデートしました
deprecated warning を修正しました
Signaling connect 時に client offer の SDP を追加しました
Kotlin 1.2.30 にアップデートしました
1.5.1¶
- 日時:
2018-02-16
- 対応 Sora:
18.01
- 対応 libwebrtc:
63.13.0
ADD¶
Sora Android SDK の API ドキュメントを追加しました
1.5.0¶
- 日時:
2018-02-15
- 対応 Sora:
18.01
- 対応 libwebrtc:
63.13.0
ADD¶
Sora のプッシュ API のメッセージを SoraMediaChannel.Listener に伝える機能を追加しました
1.4.1¶
- 日時:
2017-12-22
- 対応 Sora:
17.10
- 対応 libwebrtc:
63.13.0
UPDATE¶
依存ライブラリのバージョンをアップデートしました
1.4.0¶
- 日時:
2017-12-22
- 対応 Sora:
17.10
- 対応 libwebrtc:
63.13.0
UPDATE¶
Android Studio 3.0 に対応しました
gradle: 4.1
android-maven-gradle-plugin: 2.0
Kotlin 1.2.10 にアップデートしました
1.3.1¶
- 日時:
2017-12-21
- 対応 Sora:
17.10
- 対応 libwebrtc:
63.13.0
UPDATE¶
libwebrtc を 63.13.0 にアップデートしました
Kotlin 1.1.51 にアップデートしました
1.3.0¶
- 日時:
2017-09-22
- 対応 Sora:
17.08
- 対応 libwebrtc:
61.5.0
FIX¶
自身が down を持たない場合に multistream が有効にならない現象を修正しました
自身が up を持たない場合にリモートストリームが通知されない現象を修正しました
1.2.0¶
- 日時:
2017-09-21
- 対応 Sora:
17.08
- 対応 libwebrtc:
61.5.0
UPDATE¶
libwebrtc のバージョンをアップデートしました
1.1.0¶
- 日時:
2017-09-07
- 対応 Sora:
17.08
- 対応 libwebrtc:
60.11.0
UPDATE¶
依存ライブラリのバージョンをアップデートしました
ADD¶
sources jar 生成の設定を追加しました
libwebrtc.aar ダウンロードを gradle task 化しました
JitPack でにビルドと配布に対応しました
CHANGE¶
libwebrtc.aar を sora-android-sdk AAR に含めました
1.0.0¶
- 日時:
2017-08-30
- 対応 Sora:
17.08
- 対応 libwebrtc:
60.11.0
Sora Android SDK 最初のリリースです。