Jakie ' tak naprawdę ' aplikacje innych firm '?

Chciałbym wiedzieć, czym naprawdę jest aplikacje innych firm w systemie Android. Kiedy mówiłem o programowaniu na Androida , jest napisane, że warstwa aplikacji składa się z:

  1. Aplikacje natywne
  2. Aplikacje innych firm
  3. Aplikacje dla programistów

Wiem, że aplikacje innych firm to te, które nie zostały opracowane przez pierwszą firmę (dostawcę operacyjnego system), jak wspomniano w aplikacjach innych firm . Ale myślę, że jeśli chodzi o aplikacje innych firm na Androida i aplikacje programistów, prawda? Czy ktoś mógłby mi pomóc .

Komentarze

  • Naprawdę nie mogłem ' zrozumieć różnicy między aplikacjami natywnymi i zewnętrznymi aplikacje i aplikacje (wszystkie są aplikacjami w moim słowniku). Jak zostało zacytowane z książki (której ' nie możemy uzyskać, chyba że ją kupimy), czy wyjaśnia to również różnicę między nimi, czy tylko o tym wspomina? Jeśli tak, czy mógłbyś również zacytować i dodać to do pytania?
  • @AndrewT.: Och, przepraszam. To naprawdę były Aplikacje dla programistów , a nie Aplikacje tak jak redagowałem post. Czy możesz stwierdzić, czy aplikacje innych firm różnią się od aplikacji programistów? Zgodnie z odpowiedzią Izzy obie powinny być takie same, ponieważ obie nie są opracowywane przez system operacyjny ani producent .
  • Myślę, że w tym kontekście " aplikacje dla programistów " oznacza aplikacje, które nie zostały zainstalowane z żadnego " rynku " – ale tych, które napiszesz samodzielnie i przetestujesz i zainstalujesz za pomocą odpowiednich platform programistycznych. W kontekście " podpisów " (zobacz moją odpowiedź poniżej): AFAIK te aplikacje są podpisane za pomocą " klucze programistyczne ", więc znowu mają rodzaj " podpisu specjalnego ". Muszę jednak zbadać to głębiej, aby określić dokładną różnicę z punktu widzenia użytkownika '.

Odpowiedź

Krótka wersja

Każda aplikacja inna niż " Aplikacje systemu operacyjnego i producenta " oznacza " aplikacje innych firm ".

TL; DR

Aplikacje innych firm to te dostarczane przez, hrm, stronę trzecią. Chociaż poniższe terminy nie istnieją, możesz to sobie wyobrazić w następujący sposób: Pierwsza strona to ta, która zapewnia system operacyjny (AOSP / Google), druga strona producenta (dodaje własne aplikacje).

Zasadniczo, można to odczytać jako: Wszystko, co nie zostało wstępnie zainstalowane. Tak zwykle jest używany termin " innej firmy " for 1 .

Tło techniczne

Znajdziesz trochę informacji technicznych w systemie uprawnień Androida. Jeśli przeglądasz strony związane z programistami na Androida lub widzisz moje uprawnienia aplikacji , dla niektórych uprawnienia napotkasz wyrażenie ", którego nie mogą używać aplikacje innych firm " (lub podobne). W jaki sposób system decyduje, z czego składa się " aplikacja innej firmy "? Sprawdza swój podpis i porównuje go z podpisami systemu operacyjnego i producentów. Jeśli podpis aplikacji nie pasuje do żadnego z tych dwóch, oznacza to " aplikacja innej firmy ".

" Aplikacje dla programistów "

W Twoim pytaniu skupiono się na wyborze " strony trzeciej " i " aplikacji deweloperskich ". W praktyce aplikacje programistów są raczej " podgrupą " z " trzecią party " aplikacje. Jak stwierdza odpowiednia strona programisty , aby ułatwić debugowanie aplikacji podczas programowania 3 , można ją podpisać " w trybie debugowania ":

Możesz podpisać aplikację w trybie debugowania lub wersji tryb. Podpisujesz swoją aplikację w trybie debugowania podczas opracowywania oraz w trybie wydania, gdy jesteś gotowy do dystrybucji aplikacji. Android SDK generuje certyfikat do podpisywania aplikacji w trybie debugowania. Aby podpisywać aplikacje w trybie wydania, musisz wygenerować własny certyfikat.

[…]

Możesz uruchamiać i debugować aplikację podpisaną w trybie debugowania na emulatorze i na urządzeniach podłączonych do twojego narzędzia programistycznego przez USB, ale nie możesz dystrybuować aplikacji, na którą jesteś zalogowany tryb debugowania.

Dlatego " aplikacje programistów " mogą można uzyskać za pomocą znanego " certyfikatu debugowania ". Jak podaje cytowane źródło, nie należy tego używać z " wydanymi aplikacjami " (np. Programista nie powinien publikować żadnych podpisanych aplikacji sposób) 2 .

Dalsze lektury


1: chociaż technicznie może nie być w pełni poprawne (przykład: w tym kontekście, jak nazywałaby się aplikacja zainstalowana ręcznie, kiedy była podpisany tym samym kluczem co sam ROM – tzn. pochodził od producenta?)

2: Jest to spowodowane względami bezpieczeństwa. Aplikacje mogą mieć dostęp do zasobów innych aplikacji, używając tego samego podpisu – fakt używany np. Przez " dodatki " dla określonych aplikacji przez tego samego programistę (co już nazwane źródło) , na przykład podaje: Android pozwala aplikacjom podpisanym tym samym certyfikatem działać w tym samym procesie, jeśli aplikacje tego wymagają, więc system traktuje je jako pojedynczą aplikację. Oraz: Android zapewnia wymuszanie uprawnień na podstawie podpisów, dzięki czemu aplikacja może udostępniać funkcje innej aplikacji podpisanej określonym certyfikatem. Podpisując wiele aplikacji tym samym certyfikatem i korzystając z kontroli uprawnień opartych na podpisach, aplikacje mogą udostępniać kod i dane w bezpieczny sposób ). Używając " własnego " chroni " Twoją " aplikację przed dostępem " inny twórca lopers „apps ".

3: AFAIK, nie możesz zainstalować " aplikacji bez znaku ", więc podpisanie jej jest koniecznością. Kiedy " podpisujesz " aplikację, zwykle trzeba podać dwa hasła (jedno do magazynu kluczy, w którym znajdują się Twoje podpisy, a drugie do podpisu samo). Używając " trybu debugowania " podpisywania, można tego uniknąć, ponieważ używa on wewnętrznego podpisu SDK z hasłem znanym twórcom przybory. To znacznie ułatwia debugowanie, ponieważ nie trzeba wielokrotnie wpisywać tych dwóch haseł podczas " kompilacji ›testowania› kompilacji ›ponownego testowania› .. " proces.

Komentarze

  • : że ' to dobra, wyczerpująca odpowiedź, ale czy możesz powiedzieć, czy istnieje potrzeba podpisywania aplikacji w trybie debugowania .
  • Zgodnie z opisem w mojej (ponownie zaktualizowanej) odpowiedzi: " ułatwi debugowanie aplikacji podczas programowania ". ' dodam trochę tła z " kolejna aktualizacja ". Następnie ' s wyczyść nasze komentarze (usuwając te przestarzałe przez moje aktualizacje odpowiedzi), dobrze?;)
  • : OK, ale czy możesz mi powiedzieć, co tak naprawdę oznacza podpis aplikacji. kto naprawdę go opracował (czy to ' s OS, producent), czy może to coś innego?
  • To ' zagłębia się trochę w część techniczną. W tym celu możesz zapoznać się z Wikipedią . Zasadniczo oznacza to, kto podpisał aplikację, czyli zazwyczaj jest to programista.Podobnie jak w przypadku papieru podpisywanego (odręcznym) podpisem, podpis cyfrowy demonstruje autentyczność podpisanych danych (tutaj .apk).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *