Created
June 21, 2018 12:07
-
-
Save niwatako/42887e8ffc6fa55c7a3f3255e75ce0eb to your computer and use it in GitHub Desktop.
Android P - Restrictions on non-SDK interfaces #CodePiece #potatotips
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
potatotips #52 (iOS/Android開発Tips共有会) - connpass | |
https://potatotips.connpass.com/event/88164/ | |
## operandoOS おぺらんどおーえす Android P - Restrictions on non-SDK interfaces Android | |
最近メルカリをやめて7月からNote作ってるところで働きます。 | |
AndroidPから入るnon-SDKへの制限 | |
雑に言うとnon-SDKにアクセスしたときExceptionが起きる場合がある | |
### non-SDKとは | |
オフィシャルでないリフレクションを使ってアクセスするようなfield and method | |
Support LibraryなどGoogle公式のものは対象外 | |
リフレクションまたはJNI経由で利用するものが対象 | |
Reflaction via Class.getDeclaredXxxx あたり、触るとExceptionが変えることがあるよ。 | |
### どういうときException | |
non-SDKは3つのリストに分かれている | |
アクセスしたときの挙動が違う。 | |
AOSPのリポジトリに書いてあるから見てね | |
- light-greylist | |
- まだ普通にアクセスできる。将来までは保証しない。 | |
- dark-greylist | |
- targetSdkVersion が P28以上になるとアクセスできない=Exception起きる | |
- blacklist | |
- targetSdkVersion関係なくAndroidPで使うとException | |
### なにしたらいいの | |
non-SDK使ってるかチェック | |
対応方法は使わないコードに書き直すか、Pでの動作を諦める、それか、諦めて踊る | |
諦めて踊る前に | |
issueTrackerにFeature Requestを出す。 | |
メジャーライブラリもIssueが上がり始めている。ReactNativeとかも上がってきている。 | |
Issueを上げるなら、どのリストのnon-SDKか、使わない実装方法があれば書いてあげる、どうにもならなければAndroidIssueTrackerに上げるように | |
### どうやって使ってるか調べるか | |
static analysis tool veridex | |
apk渡すとバーっと出てくる | |
FAQがドキュメントに関して詳しく書いてあるので読むと良い。 | |
Q:メーカーごとに変わりますか | |
A:消えることはないが追加されるかも。減らない前提でやってもらいたいかなと思います。 | |
release build でも使っていることがわかるようになってほしい。。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment