- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- VoLTE/VoWiFi
- Mobil flották
- Xiaomi 15 - kicsi telefon nagy energiával
- Google Pixel 8a - kis telefon kis késéssel
- One mobilszolgáltatások
- Samsung Galaxy S25 - végre van kicsi!
- Milyen okostelefont vegyek?
- Samsung Galaxy A54 - türelemjáték
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
Új hozzászólás Aktív témák
-
hati
addikt
Itt van egy hosszabb leírás az adózási szabályokról.
-
filkor.tomi
kezdő
-
disy68
aktív tag
Én az ssh-s megoldást szoktam preferálni, console-t a git által adott git bash-t (MINGW64).
Ami gond lehet, hogy nincs jól beállítva a git-nél az email/felhasználó (email ami igazából fontos).
Pl.git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
szerk: megnézheted az Atlassian SourceTree progiját is, az is segíthet (kicsit döcög néhol, de egy egész jól átlátható verziókezelő gui).
-
Karma
félisten
Ez a szerver egyébként szintén egy Android alkalmazás, vagy valami rendes szerver?
1) A bróker olyan szerver, aminek a feladata az, hogy üzeneteket továbbítson, egy-egy vagy egy-több kliense között. Más szóval pontosan arra jó, amire neked kell: egy "topik", amire feliratkozik minden telefon, a bróker pedig szétküldi mindenkinek.
Van rá jópár protokoll és lib. Például ha Node szervered van, a Socket.io-val websocket alapon elég egyszerű. Meg ott van az MQTT protokoll (és például a Paho, mint implementáció), amit a mostanában trendi IOT világhoz találtak ki - ennek megvan az az előnye, hogy a QoS segítségével különböző kézbesítési szinteket állíthatsz be, és még csak gondolkodnod se kell rajta.
2) A dedikálás nem egy technikai dolog ebben az esetben, inkább filozófiai. Ha van egy szervered, aki elkülönül a kliensektől, bizonyos értelemben dedikált funkcióval bír.
3) Az androidos megoldáshoz szerintem a hivatalos doksi elég beszédes: Service Discovery. De nem muszáj ágyúval verébre lőni, azt is játszhatod, hogy fix IP-t adsz a szervernek és a kliensek ehhez csatlakoznak.
-
Karma
félisten
Szerintem teljesen rossz irányba indultál el, mikor azt gondoltad, hogy az UDP felhasználásával, a lehető legnaívabb megközelítéssel, majd siker lesz a vége a véres küzdelemnek.
Ez most P2P hálózat akar lenni, amiben mindenki küldhet broadcast üzenetet, bármikor? Muszáj ezt így? Nem lehetne dedikálni egy brókert a hálózaton, amin keresztül mindenki kommunikálhat? Ha egy hálózaton van mindenki, service discovery-vel megtalálhatják a szervert, és akkor már használhatsz TCP-t, vagy neadjisten magasabb szintű protokollokat.
-
thon73
tag
Biztos? [link]
Az adó összege nyilván elhanyagolható lesz, vagy akár nulla, de a cikk szerint akkor is foglalkozni kell vele. Esetleg érdemes lenne magát az adóhatóságot (vagy egy könyvelőt) megkérdezni. Gondolom, a bevallás kitöltése egy ilyen egyszerű bevételnél nem jelenthet nagy problémát. -
Karma
félisten
Kevéssé lepődtem meg, amikor olvastam a kérdésed. Mivel a konkrét forráskód ismerete nélkül nem lehet megoldani a helyzetet, pár ötletem van:
1) Az Android Studio által nyújtott eszközöket nézted már?
2) Használsz Bitmapeket? Mindenképpen hívj rajtuk .recycle()-t, miután végeztél a használatukkal, különben nem szabadul fel a terület.
3) Leállítasz, elengedsz mindent amikor elhagysz egy Activityt?
4) Használsz nem statikus osztályokat? Ezekkel pofon egyszerűen lehet leakelni Viewkat és kontextusokat, ugyanis a tartalmazó objektumra erős referenciát birtokolnak. Ha egy ilyen classt használsz listenernek valami külső osztálynál (például location figyelés), az egész pereputty nem tud felszabadulni. -
Karma
félisten
"Esetemben garantálva van, a felhasználó mindenképp visszatér a főképernyőre (nincs választása
)."
Tán valami kiosk jellegű alkalmazás? Akkor se garantálja senki, különösen nem az Android, hogy ugyanazt az Activity példányt hozza vissza. Főleg ha közben történik egy újrakonfiguráció mondjuk elforgatás miatt (pl. kamera).
Az onResume meghívódik első induláskor és újrainduláskor is, remek hely az ilyen UI cuccok indítására.
-
Karma
félisten
Igen. Senki se garantálja, hogy valaha ide visszatér a felhasználó, a háttérszálak meg csak a processz kilövésekor állnak le.
Alapvetően sokkal jobban jársz, ha azokat a dolgokat, amik valódi háttérfolyamatok és nincs UI vonzata (pl. location), kiszervezed egy bound/hybrid service-be. A UI-osokat meg onPause-ban állítsd meg.
-
Megoldottam, hogy különböző aligmentek vonatkozzanak egy textviewban lévő szövegre:
String a = "kozepre igazitando";
String b = "alapertelmezett alignment";
Spannable WordtoSpan = new SpannableString(a + "\n" + b);
WordtoSpan.setSpan(new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER), 0, a.length()+2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(WordtoSpan);Fontos, hogy kell a két rész közé egy "\n".
-
Karma
félisten
Az ObjectAnimator a barátod. Az XML-es megoldás is ilyen objektumokat állít össze, ez a guide meg elég alaposan végigmondja az elméletet és a gyakorlatot is.
-
Karma
félisten
A legtöbb képbetöltő library tud visszajelzést adni a képletöltés státuszáról, így ha hiba van, át tudod állítani az ImageView visibility-jét GONE-ra. Ugye használsz képbetöltőt, nem kézzel írtad meg az URL letöltést és Bitmap dekódolást?
Például az Universal Image Loader esetében a SimpleImageLoadingListener a barátod, Picassonál a Picasso.Listener, a Fresconál passzolom.
-
thon73
tag
Csak a "minimális" rendszerigények tisztázása végett:
Intel Celeron J1900 + 4 GB Ram + SSD mellett az Android Studio minden további nélkül dolgozik. A "kis" teljesítmény (mondjuk i5-höz képest) érezhető a sebességben, de nem zavaróan számottevő.
Szerintem a processzornál fontosabb a memória - ideértve a hátteret (SSD) is.
((Egyébként ez a felállás még ahhoz is elegendő, ahogy AS és Eclipse együtt fusson, bár az utóbbit kizárólag régebbi kódok megtekintésére nyitottam meg.)) -
thon73
tag
Szóval nincs semmi automatika erre, hanem "kézzel" kell megcsinálni. Köszi!
((A példakódban van egy finom hiba. Ha nem a létrehozáskor okoz kivételt, akkor nem kerül lezárásra a megnyitott file. A zárást érdemes a finally részbe tenni, és ellenőrizni, hogy writer nem null-e. Egyébként ez szinte soha nem okoz hibát, de azért mégis érdemes tudni.))
-
WonderCSabo
félisten
Tudtommal igen. A szinkronizálást te bármikor tudod kérni, az app indulása gondolom a launcher Activity onCreate-je (Application.onCreate csak akkor fut le, ha a teljes processt újraindítod).
-
Karma
félisten
-
Karma
félisten
Elaltatni a DevicePolicyManager.lockNow()-val tudsz, ha az alkalmazásodból admin alkalmazást csinálsz - ennek menete is le van írva a dokumentációban.
Feloldani nem tudom viszont, hogy lehet.
-
Karma
félisten
Igen. Mindenre, amire szükséged van.
Alternatívaként használhatsz Fragmentet, aminek a setRetainInstance metódusával meg tudod tartani az adattagokat egy ilyen konfigurációváltás alatt. A layout XML-es történet pontosan ugyanígy működik akkor is, tehát lesz onCreateView hívás, és ott feltöltheted a tagváltozóidból.
-
Karma
félisten
A portrait módhoz tartozó XML-t a /res/layout/ mappába rakod, a landscape-et pedig a /res/layout_land/ mappába. Lehetőleg ugyanazokat az ID-ket használd az azonos funkciójú elemekhez, és ami sokkal fontosabb: kezeld az adatok kimentését az onSaveInstanceState és onRestoreInstanceState metódusokkal.
-
Karma
félisten
El kellett mennem itthonról, úgyhogy csak most volt lehetőségem megnézni. Nincs fenn Eclipse a gépemen, csak Xamarin Studio (és az általa felrakott Android SDK), de parancssorban le tudtam fordítani az anyagot.
Nekem nem fagy le, nem crashel, meg semmi csúnyát nem csinál. Annyit változtattam csak, hogy a libs mappából töröltem a Picassot (UIL mellett felesleges) és a v4 support libet (az appcompat v7-ben is benne van), majd rátettem a Nexus 7-emre és megy.
Egyébként nagyon rossz forma, sőt mondhatni szigorúan tilos bekódolni azt, hogy "/mnt/sdcard". Csak rosszul sülhet el egy olyan telefonon, aminek nincs belső tárhelye és SD kártyája.
Javaslom az Environment osztályt tanulmányozásra.
Zedz: Az AsyncTask osztály, amit az esetek döntő többségében ajánlott használni az ilyen háttérben végzett feladatokhoz, alaphelyzetben egy négy háttérszálból álló poolt használ, amit a framework menedzsel. Szóval igen, a droid intézi
Nagyon ritka az, hogy valami külső/belső okból ez a felállás nem jó, és az AsyncTask helyett más megoldást kell keresni. Az viszont például biztos, hogy Thread vagy Timer/TimerTask osztályokat használni mobilon súlyos hiba, mert van erőforrásbarátabb megoldás.
-
Karma
félisten
Mindjárt megnézem a projektet is, de elöljáróban két nagyon fontos dolgora szeretném felhívni a figyelmed:
1) Miután beraktál valamit a libsbe, azt ne vedd fel a build path-ra, mert automatikusan felkerül.
Sőt, továbbmennék, soha ne nyúlj a build path-hoz!
2) Az, hogy "lefagy" ebben a formában nem hordoz információt. Lehet ANR (application not responding), vagy force close; ez utóbbi esetben nézd meg mindig, hogy mit logol az alkalmazásod, mert 99%, hogy ott lesz a kiváltó ok érthető angolsággal. -
Karma
félisten
Soha, de soha nem szabad fotókat a createScaledBitmappel skálázni!
Az Android Training külön fejezetet szentel ennek a kérdésnek, azt mindenképpen ajánlom megértésre, aztán meg használj egy kész libet erre a munkára.
Az előbb linkelt Picasso például teljesen jó.
Én meg az Universal Image Loadert szoktam használni. -
Karma
félisten
Mindenképp. Az alapokkal tisztában kell lenni akkor is, ha webes technológiával megy neki a fejlesztésnek az ember; ehhez meg célszerű ismerni legalább egy platform lelkivilágát meg mondjuk az MVC alapelveket.
Egyébként az Ionic Frameworkkel elég jó tapasztalataim vannak.
-
Karma
félisten
Mi alapján feltételezed, hogy háttérszálról hívja meg? Minimális tervezéssel (például AsyncTaskok használatával) egyébként is teljesen felesleges kézzel hívogatni a runOnUiThreadet.
Viszont annyit mindenképp meg kéne nézni, hogy a logcaten látszik-e bármi. Meg mondjuk breakpointtal megnézni, egyáltalán meghívódik-e az a sor.
És jó lenne látni valamit a kódból és a layoutból.
Lehet írni kéne egy topik összefoglalót, amiben ezek a közös kötelező körök benne vannak.
-
Karma
félisten
A konfigurációs fájljában, ami a projekt gyökerében van alaphelyzetben, tudod hangolni a működését. Mondjuk fontos, hogy bárminek, ami a manifestben látszik (pl. Activity-k, Service-ek) nem szabad megváltoztatni a nevét, mert úgy az Android nem találná meg, és nyekkenés lenne a vége.
Ugyanez vonatkozik mindenre, amit reflexióval hozol létre.
-
raggg
senior tag
Először lassan megy, de ha hozzászoksz elég nagy előnyben vagy azokkal szemben, akik csak a magyar szakirodalmat olvassák; ami nem csak hogy sokszor hibás (rosszul van fordítva vagy lektorálva) de nem is feltétlen a legjobb könyveket vonultatja fel.
Egyébként ha könyvet szoktam keresni akkor amazon-on vadászom az értékeléseket, nagyjából azért ki lehet deríteni minden könyvről hogy mennyire érdemes pénzt/időt 'pazarolni' rá. :-)
-
trisztan94
őstag
Pedig a legjobb szakirodalmak angolul vannak.
Érdemes lehet belefektetni egy olcsó tabletbe, vagy ebook olvasóba, nagyon kényelmes azon olvasni és a Google Books / iTunes / Kindle párossal szinte nincs olyan könyv, amit ne lehetne elérni, a papíros árának sokszor töredékéért.
Én iPad-et használtam, szinte kizárólag erre, nagyon meg voltam elégedve vele. Jobb volt, mint egy könyv szvsz.
-
trisztan94
őstag
Hát személyes és kollégák tapasztalatával azt tudom mondani, hogyha komolyan akarsz foglalkozni Android fejlesztéssel (meg több mindennel, itt van pár példa: Java, Ruby stb), akkor állj át egy UNIX alapú rendszerre. Nagyon sok szívás tud lenni Windowssal ilyen téren sajnos.
Erre a legjobb megoldás jelen pillanat a Vagrant, ha nem akarod lecserélni a Windowst.
-
Karma
félisten
Ezt a leírást nézd végig és tartsd be. Az AOSP nem egy olyan dolog, amit csak úgy szétkap és tákol az ember.
-
Karma
félisten
Igen, enélkül a csak-Java alkalmazásokat elég könnyen vissza lehet fejteni. Onnantól a lehetőségek elég tágak... Az ártatlan vizsgálódáson túl lehet sok gonoszságot is művelni, például átírni benne egy-két apróságot, kiiktatni valami házi védelmet, becsempészni egy kis trójait, átnevezni, és kiadni saját (vagy az eredeti) nevén.
4.1-től kezdve elvileg a fizetős alkalmazások már titkosítottak, úgyhogy ha régebbi telefonra meg alternatív csatornákon nem terjeszted a programod, akkor az már biztonságban van.
-
WonderCSabo
félisten
A ProGuard egy bytecode szintű obfuszkáló, optimalizáló és méretcsökkentő eszköz. Az obfuszkáló részének lényege az, hogy az osztályok neveit, metódusak neveit, mezők neveit stb. átnevezi értelmetlen rövid kifejezésekre, mint "a", "a.c.d", stb. Ennek köszönhetően ha visszafordítják is .java fájlokká az appodat, akkor sem lehet egykönnyen kibogozni, mit is csinál pontosan a forrás. De ezt a Google első találat a hivatalos oldal sokkal szebben írja le. A Proguard fizetős verziója a DexGuard, ami picit többet tud.
A ProGuard elsőre nagyszerű dolognak tűnik, de valójában a használatához hozzáértés és rendkívül hosszú konfigolás és tesztelés szükséges, mert az obfuszkáció miatt nagyon nehéz látni, hogy hol csapja szét az appodat. És hidd el nekem - szét fogja csapni.
-
Karma
félisten
Sehogy, mert erre nem alkalmas. Valamilyen lokális megoldásra lesz szükséged... Algoritmikusan elég nehéz lenne biztosítani hogy mindenki ugyanakkor induljon...
Egy huszárvágás jellegű ötletem azért van: az eszközök NTP-vel megszerzik a pontos időt, a szerver meg olyan üzenetet küld ki, hogy "14:35:20-kor indítsátok el a lejátszást".
Új hozzászólás Aktív témák
Hirdetés
- Milyen kompakt digitális fényképezőgépet?
- Microsoft Edge
- REpont és hulladékgazdálkodás
- Vigneau interaktív lokálblogja
- exHWSW - Értünk mindenhez IS
- Filmvilág
- Bambu Lab 3D nyomtatók
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Csere-Beszámítás! AMD Ryzen 5 9600X Processzor!
- Telefon szerviz helyben - Gyors javítás, akár 30 perc alatt!
- Samsung Flip 2.0 PRO 65" WM65R + Connectivity tray + Gurulós állvány
- ÁRGARANCIA! Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Samsung Galaxy A14 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest