Czy możliwe, żeby aplikacja na androidzie sama z siebie cofnęła sobie wersję? Pisałem sobie przy pomocy android studio aplikację i instalowałem na telefonie przez to adb. Korzystałem z pierwszej wersji, ale coś chciałem dorobić i wrzuciłem sobie nową. Kilka tygodni działało dobrze, wszystko ok, a ostatnio patrzę a odpala mi się w starej wersji i nie ma tych poprawek.
#androidstudio #android #androiddev
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@WpiszSwojLogin: Kiedyś gdy pisało się apki w Android Studio to potrafił wrzucać nowe wersje do cacheu tej apki co powodowało że po wyczyszczeniu cacheu apka wracała do któregoś poprzedniego builda, nie wiem czy tak wciąż jest ale możliwe
  • Odpowiedz
Jak radzicie sobie z bałaganem w katalogu projektu "res/layout", "drawable" itd? Z tego co widzę nie można robić podfolderów(Directories) dla oddzielnych Activities i Fragments. Podzieliłem sobie projekt na różne moduły, w głównym katalogu można zrobić fajnie porządek ale w "res" nie wiem jak ogarnąć ten nieład oprócz nazywania plików od nazw activities.

Jakieś porady?

Przy większym projekcie tam jest setka pojedynczych plików.

#androidstudio #androiddev #kotlin #
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@BornToDie69 wydzielasz feature do modułu, który potem dodajesz jako dependency do :app. Wtedy w obrębie modułu używasz normalnie tych resów, a w module aplikacji z użyciem prefixu, np. featureA.R.layout.fragment_main
Zobacz sobie jak to wygląda w projekcie Now in Android.
  • Odpowiedz
nadal są stringi, Adaptive Icon, konfiguracja fullBackupContent, czasami trzeba jakiś Theme zrobić... Xml prędko nie zginie ( ͡° ͜ʖ ͡°)

Odpowiedz


@PieceOfShit: ale to nie ma dużo. Twoje pytanie było odnośnie dużej ilości layout xml.
  • Odpowiedz
Cześć,

Mam taki problem. Posiadamy w pracy aplikację na telefon, w której się ogarnia komentarze i jakieś wrzutki na serwer własny. Problem w tym, że ostatnio zaktualizowaliśmy telefony do Androida 14 i aplikacja przestała działać. Cofnąć aktualizacji się nie da a z chłopem co aplikację tworzył kontaktu brak. Teraz moje pytanie czy jest z tej sytuacji jakieś wyjście?

Zastanawiałem się czy da się jakoś z pliku apk pozyskać kod i spróbować go
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@uncross89: Jak przejechał po apce proguardem to będzie ciężko, ale nie jest to niemożliwe. Nieobfuskowany bytekod javy w miarę dobrze się dekompiluje. Pytanie czy taniej nie będzie ogarnąć jakiegoś studenta wspartego chatem GPT żeby to od nowa napisał.
  • Odpowiedz
@uncross89: Dodatkowo co to znaczy ze przestała działać? Crashuje się? Możesz wrzucić logcata? Możliwe ze tam leci błąd z jakimś opisem. Co do ewentualnej rekompilacji to masz 2 drogi.
- Dekompilujesz JADx i być może dostaniesz kod który się będzie kompilował, albo będzie wymagał pewnych poprawek. Ewentualnie będzie tylko baza pod przepisanie.
- Inna opcja to apktool, tam dostaniesz smali, taki czytelny bytecode. Można wtedy próbować podmienić albo poprawić pojedyncze
  • Odpowiedz
Pierwsze kroki i frustracja ogromna... Czy nie można prościej jak c/c++/c#/lua/pyhon, siadasz do programowania i wiesz co robisz, a nie że masz setki pakietów różne wersje wiele ze sobą koliduje, a informacji o tym brak, więc gadaj z ai godzinami, lub szukaj w google, tworzysz nowy projekt chcesz dodać MapView, a tam kilka errorów że nie ta wersja pakietu który nie jest nawet widoczny w pliku build grandle. Jeżeli nawet na domyślnych
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@enyel: mobile dev się zmienia dynamicznie co 2-3 lata na nowo jest robione ogrom rzeczy. Teraz tak naprawdę to powinieneś iść w Compose bo "MapView" to chyba jeszcze XML
  • Odpowiedz
@marcus777 aż mnie zaciekawiło czemu przesiadka miałby minusy. Daj link rzucę sobie okiem... choć na Javę już by mnie nikt nie namówił... chyba żeby właśnie przepisać na kotlin ;P
  • Odpowiedz
Bawił się ktoś w apkach pod Android Auto? Jest sobie radyjko RCD330 (picrel), całkiem popularne. Samo w sobie ma połączenie z CAN bo musi czytać przyciski kierownicy lub czy jest wrzucony wsteczny.

Moje pytanie jest następujące, czy jako dev mamy w takiej konfiguracji dostęp od strony aplikacji do danych po CANie? Gadamy bezpośrednio z autem czy może z jakimś protokołem od rcd330? Czy mamy dostęp do wszystkich danych (w tym danych silnika,
CXLV - Bawił się ktoś w apkach pod Android Auto? Jest sobie radyjko RCD330 (picrel), ...

źródło: img1

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CXLV Ale Android Auto samo w sobie jest aplikacją i pytanie czy nie ma w sobie zaszytej jakiejś kontroli aplikacji i czy nie blokują niezweryfikowanych aplikacji. Do tego pozostaje kwestia dostępu do API
  • Odpowiedz
Chciałbym zrobić małą apkę na Androida, ale na całkiem dobrym sprzęcie świeżo zainstalowany Android Studio działa okropnie. Czy wy tak żyjecie czy ja muszę coś dodatkowo konfigurować? Dodam, że chcę korzystać z emulatora bo Pair Wifi mi się rozłącza, a czasem w ogóle nie chce się łączyć. Kotlin mi odpowiada, nie chciałbym zmieniać na Xamarina. Emulator się tnie jakbym miał 512MB ramu :D

#androidstudio #androiddev
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Testuje_Toster: Nie mam i raczej nie przypominam sobie, żebym miał problemy z AS, ale ja korzystam z Macbooków, teraz mam z M1, więc raczej można powiedzieć, że wyższa półka ;)
Jest opcja przyznania większej pamięci Studio oraz emulatorowi też.
Co do pożerania zasobów, to pamiętaj, że to jest emulator, a nie symulator jak u konkurencji ;)

Połączenie po Wifi jest zawodne niestety, ale po kablu nie ma problemu. Można też
  • Odpowiedz
#kotlin #androidstudio lepiej jest napisać aplikacje opartą na jednym 'Activity' i fragmentach czy w jakiś sposób podzielić fragmenty na kilka 'Activity'?
Tak się zastanawiam jak napisać aplikacje - jeśli napiszę ją w sposób wyżej (jedno Activity i fragmenty) to wyjdzie mi około 8 fragmentów.
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mamniciwszystko: nie ma czegoś takiego jak lepiej i gorzej xD
to zależy.

Jeśli te fragmenty są jakaś jedną spójną częścią, np konkretnym flow to lepiej zrobić to na fragmentach, jeśli to są różne opcje w aplikacji to też możesz to tak zrobić, ale osobne activity będą czytelniejsze
  • Odpowiedz
Kurde #chwalesie udało mi się (na podstawie poradnika oczywiście) podpiąć pod przyciski latarkę.
Zaczynam widzieć potencjał w ogromie funkcji do wykorzystania w powiązaniu z logiką i jak się do nich dostać.
Nie będę dziś chyba spał z podjary.
Dlaczego jak generuję apk to na innym telefonie pod koniec instalacji pisze że nie udało się zainstalować?
Konieczna jest zabawa z manifestem?

#naukaprogramowania #androidstudio #java
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@awiner: haha ale śmieszna sytuacja haha
Miałem bardzo starą wersję material w build.gradle haha
zmieniłem już na implementation 'com.google.android.material:material:1.8.0-beta01' haha

Razem z rodziną wciąż się śmiejemy haha
  • Odpowiedz
Mam taki data class, żeby przy zbieraniu danych z Firestore, zebrać dokument do właśnie tej klasy tym kodem:

val user = docReference.toObject(User::class.java)
Problem w tym, że w Firestore mam w tym dokumencie jeszcze jedną kolekcje i przez tą kolekcje nie mogę już zmienić dokumentu na klasę User bo wtedy zwraca mi to tylko null (°°

Da się jakoś w data class
mamniciwszystko - Mam taki data class, żeby przy zbieraniu danych z Firestore, zebrać...

źródło: comment_1668896963Iour9NONDsHOEJOuW0AnO9.jpg

Pobierz
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mamniciwszystko: oczy szczypio od tego konstruktora, który zresztą, zdaje się, że jest zbędny. A co się dzieje, jak po prostu dodasz sobie pole w klasie?

import java.time.ZoneOffset.UTC
import java.time.ZonedDateTime

data
  • Odpowiedz
@mamniciwszystko: w Javie też to nie działa. Masz zasadniczo trzy opcje: każdą metodę nazwać inaczej, zrobić tylko jedną metodę generyczną, albo zrobić interfejs generyczny czyli wyciągnąć parametr generyczny na poziom interfejsu. Jednak w przypadku interfejsu generycznego niestety dana konkretna klasa może implementować tylko jeden taki interfejs na raz, a zatem nie da się zrobić klasy implementującej równocześnie CallListener oraz CallListener. No cóż, genericsy w Javie/Kotlinie są takie trochę niedorobione.
  • Odpowiedz