2016-09-20 11 views
7

私は、システムでの認識の答えを探すことによって、Androidのソースを掘り下げていました@nullキーワードはレイアウトに記載されています。例えば、Androidがレイアウトで@nullキーワードを解釈する仕組みは?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:background="@null" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

は、これまでのところ、私はこのルートをたどっ:

  1. TypedArray#getDrawable(int index)
  2. ResourcesImpl#getValue(@AnyRes int id, TypedValue outValue, boolean resolveRefs)
  3. AssetManager#getResourceValue(@AnyRes int resId, int densityDpi, @NonNull TypedValue outValue,boolean resolveRefs)
  4. AssetManager#loadResourceValue(int ident, short density, TypedValue outValue,boolean resolve)

私はFにしようとしましたJNI実装のsource codeにind AssetManager loadResourceValueメソッドが成功しませんでした。

Androidが@nullタグを解決する方法を誰かが指摘できるのであれば、私は感謝します。

ありがとうございます!

答えて

1

NDKで公開されているフロントエンドで検索しています。 JNI関数はまったくありません。 android.util.AssetManagerのJNIラッパーはhereです。

ResTable実際の解析と解決には、クラスが使用されます。少し深く掘り下げれば、@nullが処理されるlinesが見つかります。

+0

コードが狂ったように見える! Serio、返事ありがとう! –

関連する問題