JAVA mobilní aplikace - co je to "JAVA pro Nokia", "JAVA pro Sony Ericsson", ...



Dobrý den,prosím o odpověďi, mám dvě otázky.Vím, že v dnešní době drtivé převahy patlafounů na kterých umí patlat i každá podprůměrná slepice i opice a tomu se i přizpůsobuje celkový návrh a koncepce patlafounů, patlafouních operačních systémů systémů a patlafouních aplikací, co se týká mojí otázky jde už o trochu archaické téma, ale zajímá mě to, zeptat se musím.Při stahování mých oblíbených milovaných Java aplikací a her pro mojeho tlačítkového miláčka založeného na Javě jsem našel pár zajímavých stránek, kde je u mnoha Java aplikací ke stažení více verzí rozlišených podle toho jestli je to JAR nebo JAD soubor, podle rozlišení displeje (což je pochopitelné), ale často i podle toho, o jakou značku tlačítkového mobilu s Javou se jedná.Často je tam psáno např.: "Stažení JAR pro Nokia 240x320", "Stažení JAD pro Nokia 240x320", "Stažení JAR pro Nokia 120x120", "Stažení JAR pro Sony Ericsson 240x320", "Stažení JAR pro Samsung 240x320", "Stažení JAR pro Siemens 240x320", "Stažení JAR pro Sagem 240x320", "Stažení JAR pro LG 240x320", ... zkrátka u většiny aplikací je nabízena verze pro více rozlišení a pro více dříve běžných značek mobilů a u mnoha aplikací dokonce snad pro každou značku zvlášť.Rozdělení podle rozlišení chápu (už několikrát jsem na několika mobilech provozoval Java aplikace psané pro jiné rozlišení a aplikace byla buď jen přes část displeje nebo se naopak nevešla celá na displej - megahardcore hlavně u Bombermana, Diamond Twister a Block Breaker ![](/Client.Images/smileys/3.gif) , ale prkaticky vlastně snad u všeho ![](/Client.Images/smileys/3.gif) ).1.) První moje otázka je: Co ale nechápu, jaký je rozdíl mezi JAR a JAD souborem, hlavně jaký je praktický rozdíl pro uživatele při stažení a používání aplikace?2.) Druhá moje otázka: Co ale nechápu, jaký je rozdíl mezi tou samou aplikací té samé verze toho samého rozlišení displeje pro Nokii, Samsung, Siemens, Sharp, LG, Sony Ericsson, Motorolu, ... a podobně?Děkuji moc za všechny smysluplné odpovědi k tématu.Prosím, zdržte se nesmyslných odpovědí které nejsou k tématu, například jakože Java aplkiace jsou zastaralé a že dnes už každá slepice používá patlafouny a patlafouní aplikace, já taky nikomu nic nevnucuji, jen bych se rád dopátral odpovědí na položené otázky, ať už jsou jakkoliv "zastaralé". Děkuji.
1) JAR je archv s tou aplikací , jad může být pouze "zástupcem''2) každý výrobce Javu implementoval jinak proto krom rozlišení se rozlišoval ještě i výrobce
Ohledně aplikace vám doporučuji obrátit se na vývojáře, nejlépe v obchodě, kde jste aplikaci stáhl, nebo počkat na update aplikace, jestli nevyřeší problém. <p>protože ostatní příspěvky zde zmiňují vzhůru, zmíním se o negativních aspektech jara. i s těmito negativy je jaro všudypřítomná, spolehlivá a funguje tak, jak je inzerována.</p><p>takže k negativům:</p><ul> <li> <p>enormous: já bych nechtěl dát sklenice s 3000 třídami do mého malého hobby projektu.</p> </li> <li> <p>existuje několik popisů, které jsou pomalejší než některé jiné di rámce jako guice nebo pico. neoficiální a pravděpodobně ne příliš důležité.</p> </li> <li> <p>práce s některými částmi jara může být frustrující, pokud nejsou dobře zdokumentované části jádra a dokumentace, kterou najdete v různých hlavních verzích.</p> </li> </ul><p>jako vedlejší účinek jeho velikosti, buďte připraveni strávit radostné hodiny kopáním hromádek tříd, které se sice logicky pojmenovávají, začnou se spojovat do obrovské hromady substantiv, když jste unavení („jistě, stačí připojit transactionawareconnectionfactoryproxy k vašemu usercredentialsconnectionfactoryadapter to .. zzzzzzzz "). abychom byli spravedliví, skutečně jsou logicky pojmenováni, je to rozumná reakce na velikost rámce, ale přesto.</p><p>možná díky této adaptaci nových kousků může být jaro alespoň pro mě pomalé. ne tolik s jádrovou pružinou, ale existují konektory pro téměř všechno a nejsou zdaleka tak dobře zdokumentovány, jak by mohly být, a to je, když začnete brodit skrz podstatnou polévku. opět platí, že je to všechno jen v reakci na jeho velikost.</p> <p> <a href="http://jd.benow.ca/">jd-gui</a> je v současné době nejlepší dekompilátor. dokáže zvládnout novější funkce v javě ve srovnání s jad.</p> <p>moje zkušenost je založena na 10leté zkušenosti s prací s java a 3leté zkušenosti s prací s c # /. net. java je 0% produktivnější než c # .net toto je založeno na psaní back-end aplikací založených na službách.<br> c # /. net je možná o 5% produktivnější než java pro psaní uživatelských aplikací.) ale pak jsem to neudělal téměř 5 let v java a nový editor uživatelského rozhraní netbeans mohl tuto mezeru uzavřít.</p><p>chcete zvýšit produktivitu? <a href="http://en.wikipedia.org/wiki/continuous\_integration"> ci </a> (ideálně kontinuální dodávka) a automatizované testy. produktivita získaná výběrem jazyka/platformy/ide na jakémkoli hlavním jazyce/platformě/ide je poměrně malá.</p> <p>sun poskytuje rozhraní api nazvané codemodel pro generování zdrojových souborů jazyka java pomocí rozhraní api. není to nejjednodušší získat informace, ale je to tam a funguje to velmi dobře.</p><p>nejjednodušší způsob, jak toho dosáhnout, je součástí jaxb 2 ri - generátor schématu xjc-to-java používá codemodel pro generování svého zdroje java a je to součást sklenic xjc. můžete jej použít pouze pro codemodel.</p><p>chyť to z <a href="http://codemodel.java.net/">http://codemodel.java.net/</a> </p> <p>to se bude lišit, ale takto to vidím na dostatečně velkém místě, aby bylo možné rozlišovat mezi typy programátorů.</p><p>řekl bych, že vstupní úroveň a junior jsou totéž. jsou jen mimo školu a mají méně než dva roky praxe. jsou jim přiděleny nejméně složité úkoly a měly by být pod přísným dohledem. obecně vědí asi 10% toho, co si myslí, že vědí. obvykle neprošly celým vývojovým cyklem, a tak často udělají velmi naivní rozhodnutí, pokud dostanou příležitost si vybrat. bohužel mnoho z nich se ve skutečnosti nestará o to, jaký je požadavek, chtějí si věci budovat podle svých představ. často mají špatné ladicí schopnosti.</p><p>střední úroveň je místo, kde padne mnoho programátorů. mají více než dva roky zkušeností a obvykle méně než deset, i když někteří mohou zůstat na této úrovni celou svou kariéru. mohou vytvářet pracovní kód s menším dohledem, pokud jsou přiděleny relativně rutinním úkolům. nejsou obvykle pověřeny designem na vysoké úrovni nebo složitými úkoly, které vyžadují důkladnou úroveň znalostí. mohou však mít za úkol navrhnout část aplikace, a to zejména proto, že jsou v zóně, aby se stali vedoucími vývojáři. jsou dobří v údržbářských úkolech nebo úkolech, kde se mohou soustředit pouze na svůj kousek skládačky, ale obvykle se nepředpokládá, že budou posuzovat aplikaci jako celek, pokud nebudou pracovat se staršími vývojáři nebo nebudou připraveni na povýšení na vyššího. obvykle mohou dělat slušnou práci při řešení problémů a ladění, ale musí se opravdu slogovat, aby dostali ty tvrdé. zatím nemají dostatek zkušeností, aby viděli vzorce problémů, které je ukazují na pravděpodobné místo, kde se vyskytují. tyto dovednosti však získávají a jen zřídka potřebují pomoc s laděním. pravděpodobně prošli celým vývojovým cyklem alespoň jednou a viděli výsledky návrhových problémů a učí se jim, jak jim v budoucnu zabránit. obvykle mají tendenci brát požadavek na nominální hodnotu a ne tlačit jej zpět, když má zjevné problémy nebo mezery. naučili se dost, aby věděli, co nevědí, a začínají je získávat. jsou to pracovní koně programovacího světa, dodávají pravděpodobně 80-90% rutinního kódu a možná 10% velmi obtížných věcí.</p><p>tuto otázku si ani nemusí položit nikdo, kdo je na vyšší úrovni. jsou to experti ve svých zvolených technologických řadách. jsou jim dány těžké úkoly (ty, které nikdo neví, jak řešit) a často dostávají odpovědnost za design. často pracují samostatně, protože mají prokazatelné zkušenosti s dodáním zboží. očekává se, že budou mentorovat juniorské a středně pokročilé vývojáře. často jsou to úžasné nástroje pro odstraňování problémů. už se s těmi stejnými problémy setkali dříve a mají velmi dobrou představu o tom, kde hledat první. senioři často mentorují i ​​mimo pracoviště. obecně mají alespoň desetileté zkušenosti a téměř vždy byli na alespoň jednom pochodu smrti a přesně vědí, proč je třeba některým věcem zabránit. umí dodat funkční produkt a dodržet termín. vědí, jaké rohy lze řezat a jaké rohy by se nikdy neměly řezat. znají alespoň jeden a často několik jazyků na odborné úrovni. viděli, jak na pracovišti zasáhlo mnoho „horkých nových technologií“ a zmizely, takže mají sklon být o něco konzervativnější, pokud jde o skákání na rozjetém ​​vlaku pro další vzrušující nový vývojový nástroj (ale ne zcela odolný vůči změnám - ty by byly starší středně pokročilí vývojáři, kteří nikdy neučiní krok k seniorovi). chápou, že jejich úkolem je dodávat pracovní software, který dělá to, co uživatelé chtějí, a ne hrát se zábavnými nástroji. často si vybírají, kde budou pracovat, protože mohou být a protože z první ruky viděli, jak špatná mohou být některá místa. hledají místa, která mají nejzajímavější úkoly. často vědí více o produktech své společnosti než kdokoli jiný, i když tam byli jen pár měsíců. vědí, že potřebují více než znalosti programování a dokážou získat znalosti o obchodní doméně, kterou také podporují. často si jsou vědomi problémů, které junioři nikdy neuvažují, a meziprodukty si často nemyslí o regulačních a právních otázkách v obchodní oblasti, kterou podporují. mohou a budou tlačit požadavek zpět, protože vědí, jaké budou s tím problémy a mohou to laikům vysvětlit.</p> <p>otravně on-line písma nejsou podporována všemi prohlížeči (opera v iphonu je <a href="http://en.wikipedia.org/wiki/pet\_peeve">pet peeve</a> ).</p><p>zdá se, že google fonts <a href="http://code.google.com/webfonts">čistý systém css</a> funguje lépe než alternativy, ale v mnoha prohlížečích můžete skončit s <a href="http://www.bluerobot.com/web/css/fouc.asp/">fouc</a> .</p><p>google font api " <a href="http://code.google.com/apis/webfonts/docs/webfont\_loader.html">... byl vyvinut společností google a typekit</a> ", takže doufám, že následující zkušenosti jsou dost podobné:</p><ul> <li> <p>knihovna javascriptu je celkem lehká, ale dejte si pozor na jakékoli výrazné zvýšení latence z dalších vyhledávání dns a připojení http, které mohou být způsobeny prostředky napříč doménami</p> </li> <li> <p>použití verze jsapi je na prázdné mezipaměti poměrně pomalé (jako vedlejší poznámku také <a href="https://webmasters.stackexchange.com/questions/1042/google-jsapi-auto-loading">nelze kombinovat požadavky js do jednoho velkého soubor</a> )</p> </li> <li> <p>možnost deklarovat písma potřebná odděleně od javascriptu include umožňuje následné načítání knihovny a opravdu pomáhá s flexibilitou (x) html šablony</p> </li> <li> <p>další události malování spuštěné, když knihovna javascript znovu maří celou obrazovku změnou tříd celé stránky, bude znamenat, že váš css musí být efektivní ( <a href="http://code.google.com/speed/page-speed/docs/rendering.html">google k tomu nabízí průvodce</a> )</p> </li> <li> <p>ačkoli s některými fonty musí být prohlášena kurzíva a různé váhy, zmenšuje se velikost stahování, ale přidává další zátěž designérovi nebo programátorovi</p> </li> <li> <p>vlastní písma, použitá vkusně, vypadají nádherně</p> </li> </ul> <p>namísto použití jquery jej můžete pomocí jednoduchého javascriptu zjistit:</p><pre><code>if( /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.useragent) ) { // some code.. } </code></pre><p>nebo je můžete zkombinovat, aby byla přístupnější prostřednictvím rozhraní jquery ...</p><pre><code>$.browser.device = (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.useragent.tolowercase())); </code></pre><p>nyní <code>$.browser</code> vrátí <code>"device"</code> pro všechna výše uvedená zařízení</p><p>poznámka: <code>$.browser</code> smazáno na <a href="http://jquery.com/upgrade-guide/1.9/#jquery-browser-removed"><strong>jquery v1.9.1</strong></a> . můžete to však použít pomocí pluginu jquery migrace <a href="https://stackoverflow.com/a/15072522/2724173"><strong>code</strong></a> </p><hr><p>důkladnější verze:</p><pre><code>var ismobile = false; //initiate as false // device detection if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|android|silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.useragent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|\_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |\_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.useragent.substr(0,4))) { ismobile = true; } </code></pre> <p>to je dobrá otázka. myslím si však, že souhlasím s robem. pokud jde o testování skutečné navigace a rozhraní, budou prototypy ideální, ale pro testování skutečné funkčnosti si pak myslím, že budete muset nechat své ruce zašpinit a srazit zmenšenou verzi skutečné aplikace.</p> Můžete uvést, jaké rozlišení vaše hra podporuje AndroidManifest.xml tím, že [tuto vlastnost](http://developer.android.com/guide/topics/manifest/supports-screens-element.html) . Když řešení Zařízení je tam není uveden, bude Android měřítko výřezu (říká se tomu režimu kompatibility).