2016-05-26 6 views
7

Jedną z nowych funkcji android studio 2.2 preview 1 jest APK Analyzer i podczas próby jej to daje statistics Defined Methods i Referenced MethodsJaka jest różnica pomiędzy zdefiniowanymi metodami i odwołuje Methods in Android studio Apk Analyzer

Przykâadowa:

Ten plik dek definiuje 4118 zajęcia z 28823 metod i referencje 35206 metod

+2

AFAIK, "zdefiniowane metody" oznaczają "metody, do których masz przypisany kod", niezależnie od tego, czy zostały napisane samodzielnie, czy też zostały zapisane w bibliotece. "Metody odwoływane" odnosi się do metod w innych plikach DEX (np. Android SDK), do których odwołuje się twój kod. – CommonsWare

+0

, ale jak poznać całkowitą liczbę metod zawartych w projekcie? jest to, że suma zdefiniowanego + Ref lub tylko przywoływanej metody się liczy? – MrDroid

+0

"ale jak poznać całkowitą liczbę metod zawartych w projekcie?" - zależy to całkowicie od tego, jak zdecydujesz się zdefiniować "zawierać". Chciałbym zdefiniować "zawierać" jako zdefiniowane metody, a nie te, do których się odwołuję. Na przykład w programie komputerowym Windows nie powiedziałbyś, że twoja aplikacja zawiera cały system Windows, nawet jeśli wywołałeś funkcje w zestawie Windows SDK. Nie powiedziałbyś nawet, że twoja aplikacja zawierała te funkcje Windows SDK, które wywołałeś. Podobnie fakt, że wywołujesz ("referencje") metody w zestawie SDK Androida, nie oznacza, że ​​Twoja aplikacja zawiera te metody. – CommonsWare

Odpowiedz

2

Zdefiniowane metody to metody, które napisałeś lub używasz poprawnie w oparciu o daną sytuację. Jeśli odwołuje się do metody, oznacza to tylko, że ty (lub inne metody/obiekty w kodzie) je wywołujesz. Jednak tylko dlatego, że odwołuje się do metody, nie oznacza to, że jest ona dla niej zdefiniowana, lub że można ją zdefiniować niepoprawnie. Jeśli na przykład korzystasz z bibliotek open source, które mogły zostać zainstalowane niepoprawnie (robiłem to zbyt wiele razy), uzyskasz mnóstwo metod, do których się odwołujesz, ale nic dla nich nie zostało zdefiniowane. Mam nadzieję, że pomaga!