Apie Habré jau yra gana išsamių straipsnių, skirtų Badai, pavyzdžiui, šis ir šis, bet čia žingsnis po žingsnio aprašymas Pradedantiesiems nėra programos kūrimo. Jei ką nors domina, prašome pamatyti katę.
Rašymo tema atsirado atsitiktinai - pažįstamas aktyviai užsiima žemės sklypų ribų nustatymu naudojant GPS geodezinėje įmonėje; darbo specifika (iš kur jis atsirado - geras klausimas). Kompanija nešiojamųjų kompiuterių, galinčių atlaikyti 8 valandų darbo dieną, neturi ir to daryti neplanuoja, tačiau neseniai vienas pažįstamas iš Ukrainoje aktyviai reklamuojamo Samsung įsigijo išmanųjį telefoną su Operacinė sistema Bada, tada kilo klausimas - jei galite atsisiųsti žaidimus į savo telefoną, ar yra programa, kuri gali išspręsti aprašytą grynai inžinerinę problemą? Žinoma, tokios aplikacijos nerasta ir gavau malonų pasiūlymą už tam tikrą mokestį parašyti.
Įrankiai
Kuriant programas, skirtas Bada, naudojamas Bada SDK 1.2.0, kurį galima atsisiųsti užsiregistravus Bada kūrėjų svetainėje. Šiame procese nėra nieko sudėtingo, tačiau atsisiunčiamų failų pasirinkimo etape aš, atvirai kalbant, „pamečiau“, atsisiųsdamas tik SDK ir vadinamąjį. kalbos paketas(kalbos paketas) ne, tikiuosi, kad, kaip parašyta svetainėje, įdiegus SDK jis bus automatiškai atsisiųstas. Tačiau diegimo etapo metu kažkas nepavyko. Diegimas tęsėsi neatsisiunčiant kalbos paketo, todėl nepavyko nei sukurti, nei paleisti programos.Atsisiuntus SDK ir kalbos paketą, jie turėtų būti vienoje vietoje ir kada diegiant SDK arba, jei jis yra modifikuotas, diegimo programa paims kalbos paketą ir įdiegs jį savarankiškai.
Faktinis programos kūrimas
Kūrimo aplinka yra pagrįsta Eclipse, naudojama C++ programavimo kalba. Pradėkime nuo naujos programos kūrimo su akivaizdžia komanda File -> New -> bada Application Project. Atsidariusiame lange laukelyje Project name reikėtų nurodyti projekto pavadinimą, o sąraše Project Type pasirinkti paraiškos tipą – bada Form Based Application.
Toliau aplinka paprašys nustatyti įrenginio, kuriam bus skirta programa, techninius parametrus (ekrano skiriamoji geba, GPS prieinamumas ir pan.). Šie parametrai yra apibrėžti specialiame manifesto faile Manifest.xml, kurį galite pasirinkti iš SDK failų, sukurti ir atsisiųsti iš Bada Developers svetainės arba sukurti savo. Nesivaržydamas naudojau manifesto failą iš aplankų Samples, kurie yra įdiegti kartu su SDK, nes mano programai nereikėjo jokių skambučių ir švilpukų, bet buvo svarbi tik ekrano skiriamoji geba.
Tada aplinka paprašys nurodyti SDK šakninį katalogą, dėl to neturėtų kilti problemų. Pasirinkus, sąraše atsiras įrenginio modelio pavadinimas ir jo API, kuris bus naudojamas ateityje programuojant.
Kitas žingsnis yra apibrėžti numatytosios formos pavadinimą, kuris pasirodys iškart paleidus programą. *.h ir *.cpp failai bus sugeneruoti naudojant šį pavadinimą.
Tada turėsite nustatyti, ar pridėti automatinio mastelio keitimo palaikymą ir geriausią ekrano skiriamąją gebą, jei ši funkcija bus pridėta. Suprantu, kad tai padaryti geriau, nes programa galės veikti toliau skirtingi įrenginiai su skirtingomis rezoliucijomis ir jums nereikės to daryti iš naujo.
Kita ilgos nustatymų grandinės grandis yra programos ID nustatymas, siekiant patvirtinti programos funkcijas, jei jai reikia skaityti ir rašyti į apsaugotus aplankus. Man to nereikėjo, todėl šį žingsnį praleidau.
Beveik atlikta – apibrėžiamos akivaizdžios programos savybės Pavadinimas, Tiekėjas ir Aprašymas.
Ir dabar beveik baigta - tai nustato reikiamas konfigūracijas plėtrai: rekomenduoju palikti viską pagal numatytuosius nustatymus, tačiau dabar svarbiausia konfigūracija yra Simulator-Debug - tai galimybė derinti kodą įrenginio simuliatoriuje, Target-Release - konfigūracija, skirta programos kompiliavimui prieš įkeliant ją į tikrą įrenginį.
Paskutinis veiksmas yra visų nustatymų suvestinė suvestinės lange, kurią galite perskaityti dar kartą ir įsitikinti, kad viskas pasirinkta teisingai.
Atlikus nustatymus, būsima programa pasirodo „Project Explorer“, kurią spustelėjus išplečiami resursų failai lange Resources ir pasirodo šis langas:
Spustelėję formą (ir apskritai bet kokį valdiklį) skirtuke Ypatybės, galite pakeisti akivaizdžias programos ypatybes, pvz., tekstą pavadinime, fono spalvą, programinių klavišų buvimą ir pavadinimą.
Iš karto nukeliau paruoštą mygtuką, kurį aplinka maloniai sugeneravo, nuleidau ir parašiau Calculate. Turint GUI redaktorių, nesunku gauti tokią sąsają, kuri puikiai tinka mano užduočiai (manau, kad valdiklių perkėlimo į formą ir jų savybių nustatymo procesas nesukelia jokių sunkumų); akivaizdus Label buvo naudojamas kaip įvesties laukų etiketės, o EditField buvo naudojamas kaip įvesties laukai; Etiketės taip pat naudojamos skaičiavimo rezultatams rodyti, nes jų negalima redaguoti:
Dabar apie tikrąjį kodavimą.
Veikianti programa pereina kelis etapus (pagalba labai detali, ten galite sužinoti detales), dabar mus pirmiausia domina programos inicijavimo etapas, už kurį atsakingas formos klasės metodas OnInitializing(void), kuris gali rasti faile<ВАША_ФОРМА>.cpp projekto src aplanke.
Pagal numatytuosius nustatymus šis metodas atrodo taip:
Rezultato forma1::OnInitializing(void) ( rezultatas r = E_SUCCESS; // TODO: pridėkite inicijavimo kodą čia // Gaukite mygtuką naudodami šaltinio ID __pButtonOk = static_cast
Aš tai padariau taip:
apsaugotas: statinis const int ID_BUTTON_OK = 101; // naujas veiksmo ID mygtukui CLEAR static const int ID_BUTTON_CLEAR=102; // geodezinės konstantos static const int a=6378137; statinis const float alfa=1/298,257223563; Osp::Ui::Controls::Button *__pButtonGerai; // naujas laukas: mygtukas Osp::Ui::Controls::Button *__pButtonClear; // nauji laukai: redagavimai ir etiketės Osp::Ui::Controls::EditField *__pB_deg; Osp::Ui::Controls::EditField *__pB_min; Osp::Ui::Controls::EditField *__pB_sec; Osp::Ui::Controls::EditField *__pL_deg; Osp::Ui::Controls::EditField *__pL_min; Osp::Ui::Controls::EditField *__pL_sec; Osp::Ui::Controls::EditField *__pH; Osp::Ui::Controls::Etiketė *__pX; Osp::Ui::Controls::Etiketė *__pY;
Dabar naudodami Oninitializing(void) metodą galite sukurti mygtuką Išvalyti ir priskirti jam ID veiksmą ir įvykių klausytoją. Tą patį padarysime su EditField ir Label, tačiau nepridėsime prie jų ID veiksmo ir įvykių klausytojo, nes jie reaguoja į naudotojo veiksmus paprasta programa nepateikta (IDC_BUTTON1, IDC_EDITFIELD1 ir tt - mygtuko nuosavybės Name reikšmės).
PButtonOk = statinis_perdavimas
Šiame etape jau galite paleisti programą ir pamatyti, kaip duomenys įvedami į treniruoklį, tačiau, žinoma, jokios naudos nebus, kol mygtuko paspaudimo įvykiai nebus apdoroti.
Norėdami išspręsti šią problemą, naudojamas formos klasės metodas OnActionPerformed(const Osp::Ui::Control& source, int actionId). Kaip matote, antrasis parametras yra veiksmo ID, jau minėtas aukščiau. Kai programa vykdoma, mygtukų paspaudimų įvykiai yra „klausomi“ ir jiems priskirtas veiksmo ID perduodamas OnActionPerformed (const Osp::Ui::Control& source, int actionId). Jei čia numatytas tokio identifikatoriaus apdorojimas, jis atliekamas.
OnActionPerformed turi jungiklio šabloną actionId parametro analizei, juo patogu naudotis. Toliau leisiu sau pateikti šio metodo kodą su išsamiais komentarais:
Void Form1::OnActionPerformed(const Osp::Ui::Control& source, int actionId) ( const int MAX_BUFF_SIZE = 512; switch(actionId) ( atvejis ID_BUTTON_OK: // reakcija paspaudus mygtuką Apskaičiuoti ( // gauti eilutės atvaizdą platumos laipsniai, minutės ir sekundės ir... String B_deg_str(__pB_deg->GetText()); String L_deg_str(__pL_deg) ->GetText()); Styga L_min_str(__pL_min->GetText()); ,B_sec ); rezultatas r3=Double::Parse(B_sec_str,B_sec); ,L_sec ); // skaičiavimai double b_in_decimal=B_deg+B_min/60+B_sec/3600; double l_in_decimal=L_deg+L_min/60+L_sec/3600; dvigubas eSqr=2*alfa-(alfa*alfa); double N=a/Math::Sqrt(1-eSqr*(Math::Sin(b_in_decimal))*(Math::Sin(b_in_decimal))); double X=(N+H)*Math::Cos(b_in_decimal)*Math::Cos(l_in_decimal); double Y=(N+H)*Math::Cos(b_in_decimal)*Math::Sin(l_in_decimal); String strX; String strY; // transformacija skaitinės reikšmės koordinuoja į eilutės atvaizdavimą strX.Format(MAX_BUFF_SIZE,L"%f",X); strY.Formatas(MAX_BUFF_SIZE,L"%f",Y); // gautus skaičius išveda į etiketę __pX->SetText(L"X="+strX);__pY->SetText(L"Y="+strY); __pX->Draw();__pY->Draw(); __pX->Rodyti();__pY->Rodyti(); ) pertrauka;
case ID_BUTTON_CLEAR: ( // reakcija paspaudus mygtuką Išvalyti // sukurti dialogo langą su mygtukais OK ir CANCEL ir klausimas - išvalyti visus laukus? MessageBox *pMessageBox = new MessageBox(); pMessageBox->Construct(L"MessageBox" , L"Išvalyti visus laukus?", MSGBOX_STYLE_OKCANCEL ,9000 int ModalResult (ModalResult); išvalyti įvesties laukus ir etiketę __pB_sec->Clear( ->SetText(L"X=");__pY->SetText(L"Y="); // ištrinti MessageBox ištrinti pMessageBox) pertrauka; numatytasis: pertrauka; ) ) Išvaizda simuliatorius su veikianti programa
taip:
Tas pats su „MessageBox“:
Atrodo, kad viskas. Noriu pastebėti, kad paraiška visai nepretenduoja į platų ir teisingą formuluotę, pavyzdžiui, nėra jokios „kvailių apsaugos“, nes tikiuosi savo draugo ir jo keturių kolegų sveiko proto; ši programa skirta.
Visai neseniai buvo gauta dar viena paraiška Bada plėtrai – reikia ieškoti ir žemėlapyje rodyti šalia esančius objektus, tokius kaip bankomatai ar sąskaitos papildymo terminalai. Jei kam nors įdomi ši tema, mielai pasidalinsiu savo patirtimi.
Jei kas nors turi klausimų, ką toliau daryti su programa, tai išsamiai aptariama Bada Developer svetainės straipsniuose, nes programavimas vis dar yra sudėtingesnė tema.
Galimi programų šaltiniai
Taigi, kaip visada, perspėju – metodas veikia. Aš tai išbandžiau ant savęs. Bet kokiu atveju, jei sutrikdote įrenginio veikimą, tai tik jūsų problema. Darykite viską pagal instrukcijas ir viskas veiks kaip laikrodis. Sutiko.
Pradėkime.
Aš išbandžiau šis metodas„Samsung S8500 Wave“ ir oficialia Ukrainos programinė įranga. Jį galite atsisiųsti iš.
Mums nereikia daug.
1. Multiloader – imk iki . Bet kokia versija, bet aš imčiau naujausią.
2. Failą apps_Compressed_spoof_Wave_I.bin – atsisiųskite iš nuorodos (tai pirmajai bangai, skirta Ukrainai)
Įdiegkime „Angry Birds“.
Pirmiausia suaktyviname failą apps_Compressed_spoof_Wave_ (atsižvelgiant į tai, kokią bangą turite). Tai daroma vieną kartą. Norėdami tai padaryti, paleiskite Multiloader ir pasirinkite LSI, Boot Change ir Full Download. Ekrano kopija, kurią galima spustelėti:
Pridėkite failą. Galite tiesiog nuvilkti jį į programos langą. Išjungiame telefoną. Vienu metu paspauskite ir palaikykite garsumo mažinimo + užrakinimo + maitinimo (raudonas vamzdelis) klavišus. Įsižiebs atsisiuntimo režimas. Tada uosto paieška. Tada atsisiųskite. Jei kada nors pasiuvote savo telefoną, tai jums nėra naujiena.
Failas pasiūtas - geras.
Tada išpakuokite Bada Wave Spoof (programa archyve). Viduje randame šį failą: BadaCertificate.cer. Nukopijuojame į telefoną (nesvarbu kur, bet geriau į aplanką Kiti). Telefone eikite į aplanką, kuriame jį nukopijavote, ir bakstelėkite failą. Sutikite su įspėjimu ir įdiekite sertifikatą.
Išpakuojame archyvą su žaidimu ar programa, mūsų atveju AngryBirds.rar archyvu ir nurodome kelią į aplanką, o ypač į failą su žaidimo pavadinimu application.exe (mūsų atveju AngryBirds.exe) .
Labiausiai tikėtina, kad failas bus aplanke Bin. Pažymėkite langelį, kaip parodyta ekrano kopijoje. Pakaitomis paspauskite mygtuką 1. Pasirašyti, tada – mygtuką 2. Pervardyti.
Po vieną pirmiausia paspauskite mygtuką 1. Pasirašykite
Visi čia. Eikite į skirtuką Kopijuoti. Prijungiame telefoną keičiamo disko režimu ir išskleidžiamajame sąraše pasirenkame atminties kortelę. Jei ne, spustelėkite mygtuką su dviem žaliomis rodyklėmis šalia jo. Laukiame kol bus įkeltas.
Po sėkmingo kopijavimo. Atjungiame telefoną ir einame į telefoną keliu Nustatymai - Bendra - Diegimo vieta - pasirinkite atminties kortelę. Atjungiame telefoną Samsung režimas Kies.
Neseniai man pavyko tapti „išmaniojo telefono“ savininku Samsung Wave 525 su „Bada“ operacine sistema. Iš esmės man reikėjo tik dviejų telefono funkcijų - muzikos grotuvas, į kurį galite įklijuoti įprastos ausinės su 3,5 mini lizdu ir interneto prieiga per Wi-Fi. Naujasis „Wave 525“ visa tai gali padaryti su skirtinga sėkme. „Bet, – pagalvojau, – kadangi jis turi drąsos vadintis išmaniuoju telefonu, turime jį įkelti iki galo. Ir jis pradėjo krauti.
Visos „vietinės“ programos telefone su „Bada“ sistema įdiegiamos per „Samsung Apps“ parduotuvę. Prie jo galite prisijungti naudodami to paties pavadinimo programą savo telefone arba prisijungę prie kompiuterio naudodami darbalaukio programą Samsung Kies. Nes namų Wi-Fi Dar negavau, pasirinkau antrą variantą.
Prijungus telefoną prie kompiuterio, Kiesas iškart pasiūlė atnaujinti programinę-aparatinę įrangą. Čia reikia pažymėti, kad vis dar turiu ryškių prisiminimų apie programinės aparatinės įrangos atnaujinimą naudojant patentuotą programą ankstesniame telefone - Sony Ericsson k800i. Atnaujinimo programa buvo atsisiųsta iš oficialios svetainės rusų kalba, programinės įrangos atnaujinimo procedūra buvo sėkminga. Po to atsidūriau rankose su nuostabiu anglišku telefonu be jokių rusų kalbos ženklų. Po to kelis kartus rašiau techninei pagalbai – kaskart robotas mane siųsdavo atgal du laiškai, kuriuose teigiama, kad jie atidarė mano problemos bilietą ir laikui bėgant ją išspręs. Tai laimingas laikas tai niekada neįvyko.
Bet užteks lyrinių nukrypimų. Atsisakydamas savo liūdnos patirties, vis tiek spustelėjau mygtuką „Atnaujinti programinę-aparatinę įrangą“. Ir... nieko neatsitiko. Telefonas atsijungė, vėl prisijungė ir vėl pasirodė langas, kuriame prašoma atnaujinti programinę-aparatinę įrangą. Technologijos daro stebuklus.
Programėlių parduotuvėje pasižiūrėjau kainas ir šiek tiek nusiraminau. Išsigandau, kad „Samsung Apps“ Ukrainos filiale kainos buvo kažkaip nepaprastai beprotiškos. Tai nėra visiškai tiesa - daugiausia kainos mokamos paraiškos svyruoja nuo 10 iki 50 grivinų, be to, yra daug nemokamos programinės įrangos. Nors, kaip vėliau paaiškėjo, kiekybė čia nepradėjo virsti kokybe.
Beveik visiškas lokalizuotų programų nebuvimas iškart patraukė mano dėmesį. Be to, ne tik pažįstamas ir gana suprantamas Anglų kalba, bet ir visiškai neįskaitomomis arabų, kinų kalbomis (japoniškai? korėjiečių kalba? Eik sugalvok šiuos hieroglifus...). Ypač nustebino neįtikėtina aplikacijų gausa su užrašu „tik vietnamiečių kalba“ (tik vietnamiečių kalba). Ir tai yra parduotuvės Ukrainos skyriuje! Ar kažkas tingėjo nustatyti platinimo regionus?
Dėl šio „atsargaus“ programų pasirinkimo visa parduotuvė primena nekokybiškos programinės įrangos sąvartyną. Dar radau jėgų į tai įsigilinti ir per porą dienų susmečiau beveik viską nemokamos programėlės. Po to pasirodė mano išmanusis telefonas: trijų tipų įvairaus apgailėtino laipsnio fortepijonai, keli lėtieji žaislai, viena lėta, bet graži natų programa, „Dropbox“ klientas „Pipeline“, programa su garsais atsipalaiduoti ir paprasta programa vadinamas Vibratoriumi (galite atspėti, ką jis daro). Visi. Nepaprastai naudinga programinė įranga, be abejonės. Kad galėčiau skaityti knygas, turėjau įdiegti Foliant java programą (beje, puiki programa). Net mokamose programose nebuvo normalaus medijos leistuvo, kuris pakeistų prastą telefono garso ir vaizdo grotuvą.
Mane pralinksmino mokamo „GlobalLogic Inc.“ „VKontakte“ kliento „ЄKontakte“ buvimas. Ekrano kopijose programa atrodo gana padori ir net miela. Bent jau tai yra beveik vienintelė programa, kuri savo dizainu yra panaši į paties telefono sąsają ir atrodo „gimtoji“ - ir to negalima pasakyti net apie kai kurias programas, įtrauktas į paketą. Bet aš nepirkau šios programos, nes negalėjau suprasti, kodėl man jos reikia.
Tokie įspūdžiai. Žmonės šiuose jūsų internetuose sako, kad Bada yra labai jauna OS, todėl viskas yra netvarka. Žiūrėsim, gal laikui bėgant atsiras normalios aplikacijos, parduotuvė bus sutvarkyta. Kol kas viskas blogai.
» WhatsApp skirta Bada
Jei esate savininkas Samsung išmanusis telefonas naudodami „Bada“ operacinę sistemą, negalėsite įdiegti „Whatsapp“ vienu mygtuko paspaudimu. Norėdami įdiegti, turite nemokamai atsisiųsti „Whatsapp for Bada“ ir tada ją įdiegti.
„Whatsapp for Bud“ yra ypatinga diegimo failą, pritaikyta šiai operacinei sistemai. Tai neoficiali „Messenger“ versija, tačiau ji veikia stabiliai ir suteikia galimybę mėgautis visais „WhatsApp“ privalumais. Išmaniųjų telefonų, kuriuose veikia ši OS, gamintojai liko kurti vartotojų prašymams perkelti šią programą į Bada platformą.
„Bada“ yra „Samsung Wave“ serijos modelių operacinė sistema, kuri yra modifikuota „Android“ OS. Kadangi tai nėra visiškai „Android“, „WhatsApp“ nerasite „Bud“ programų parduotuvėse. Tačiau rūpestingų programuotojų dėka galime atsisiųsti „Bada“ pritaikytą „WhatsApp“ failą ir įdiegti rusišką versiją.
Diegimo procesas
1. Atsisiųskite WhatsApp failą su plėtiniu .apk. Galite atsisiųsti jį į savo kompiuterį ir perkelti į telefoną arba atsisiųsti tiesiai iš savo telefono. Failas yra gana didelis (apie 35 MB), todėl jei neturite neribotas internetas telefone, geriau prisijunkite prie Wi-Fi tinklai ir tada atsisiųskite. Paprastai šis failas atsisiunčiamas ne į archyvą, o iš karto kaip diegimo failas. Todėl nereikia jo išpakuoti ar atlikti kitų papildomų veiksmų.
2. Paleiskite failą ir palaukite, kol bus įdiegtas. Jei paleidžiant gaunate pranešimus apie būtinybę pakeisti saugos nustatymus, išjunkite jį. Įdiegę būtinai vėl jį įjunkite! Taip pat gali prireikti leidimo prisijungti prie interneto, fotoaparato, mikrofono ir kt. Viską leidžiame, kitaip programa neįdiegs.
3. Užsiregistruokite WhatsApp naudodami savo telefono numerį ir SMS patvirtinimą ir pradėkite juo naudotis!
Užsiregistravę ir prisijungę galite per Whatsapp:
- bendrauti naudojant tekstinius pranešimus, garso komunikacijos arba vaizdo konferencijos;
- siųsti nuotraukas, vaizdo įrašus, dokumentus, pridėti šypsenėlių;
- dalyvauti bendraujant bendrose grupėse;
- pažiūrėkite, kas iš jūsų kontaktų knygelės jau turi „WhatsApp“, ir pakvieskite tuos, kurie jos dar neįdiegę.
„Bada“ operacinei sistemai išleistų telefonų ir išmaniųjų telefonų modelių yra nedaug, tačiau jie egzistuoja, ir tikėtina, kad ateityje „Samsung“ ir toliau gamins išmaniuosius telefonus su šia operacine sistema. Dabar visi Wave serijos išmanieji telefonai aprūpinti Bada OS. Visas sąrašas modelius žemiau esančioje lentelėje.