Det finns redan ganska detaljerade artiklar om Habré som ägnas åt Bada, till exempel den här och den här, men det finns ingen steg-för-steg-beskrivning för att skapa en applikation för nybörjare. Alla som är intresserade - snälla, under katten.
Ämnet för att skriva uppstod av en slump - en bekant är aktivt engagerad i att fastställa gränserna för landområden med hjälp av GPS i ett geodetiskt företag; Det specifika med arbetet (varifrån det kom är en bra fråga) är att de resulterande geodetiska koordinaterna (låt mig förklara vad som menas med latitud och longitud) måste omvandlas till rektangulära direkt efter att de har tagits emot. Företaget har inte bärbara datorer som tål en 8-timmars arbetsdag och är inte planerat, men en vän köpte nyligen en smartphone från Samsung med operativsystemet Bada, som aktivt marknadsförs i Ukraina, då följde frågan - om du kan ladda ner spel till din telefon, finns det en applikation som kan lösa beskrivna rent tekniska problem? En sådan ansökan hittades förstås inte och jag fick ett vänligt erbjudande att skriva en sådan ansökan mot en viss avgift.
Verktyg
För att utveckla applikationer för Bada används Bada SDK 1.2.0, som kan laddas ner genom att registrera dig på Badas utvecklarwebbplats. Det är inget komplicerat i den här processen, men när jag valde filer för nedladdning, "snubblade" jag ärligt talat genom att bara ladda ner SDK, men det så kallade språkpaketet (språkpaketet) är det inte, och hoppas att, eftersom det är skrivet på webbplatsen, kommer nedladdningen att ske automatiskt efter installation av SDK. Men vid installationsstadiet gick något fel, installationen fortsatte utan att ladda ner språkpaketet, vilket senare ledde till omöjligheten att antingen utföra byggandet (bygget) eller ens starta applikationen.Efter att ha laddat ner SDK:et och språkpaketet bör de placeras på ett ställe, och när du installerar SDK:n eller modifierar den kommer installationsprogrammet att hämta språkpaketet och installera det på egen hand.
Själva skapandet av applikationen
Utvecklingsmiljön är baserad på Eclipse, programmeringsspråket C++ som används. Låt oss börja med att gå vidare till att skapa en ny applikation med det uppenbara kommandot Arkiv -> Nytt -> bada Application Project. I fönstret som dyker upp ska du definiera projektets namn i fältet Projektnamn, i listan Projekttyp, välj typ av ansökan - bada Form Based Application.
Därefter kommer miljön att be dig bestämma de tekniska parametrarna för enheten som applikationen är avsedd för (skärmupplösning, GPS-tillgänglighet, etc.). Dessa parametrar definieras i en speciell manifestfil, Manifest.xml, som du kan välja bland SDK-filerna, skapa och ladda ner från Bada Developers webbplats eller skapa din egen. Utan vidare använde jag manifestfilen från mapparna Samples som är installerade med SDK:n, eftersom min applikation inte krävde några "klockor och visselpipor", och bara skärmupplösningen var viktig.
Därefter kommer miljön att be dig ange rotkatalogen för SDK:n, det borde inte vara några problem med detta. Efter valet kommer namnet på enhetsmodellen och dess API att visas i listan, som kommer att användas i framtiden för programmering.
Nästa steg är att definiera namnet på standardformuläret som kommer att visas direkt efter att programmet har startat. Detta namn kommer att användas för att generera *.h- och *.cpp-filer.
Därefter måste du bestämma om du vill lägga till stöd för automatisk skalning och den bästa skärmupplösningen, om den här funktionen läggs till. Jag förstår att det är bättre att göra detta, eftersom applikationen kommer att kunna fungera på olika enheter med olika upplösningar och inte behöver göras om.
Nästa länk i en lång kedja av inställningar är definitionen av applikations-ID, för att certifiera applikationens funktioner om den behöver läsa och skriva till skyddade mappar. Jag behövde inte detta, så jag hoppade över det här steget.
Nästan där borta - definierar de uppenbara applikationsegenskaperna Namn, Leverantör och Beskrivning.
Och nu är det nästan över - det här är definitionen av de nödvändiga konfigurationerna för utveckling: Jag rekommenderar att du lämnar allt som standard, men nu är den viktigaste konfigurationen Simulator-Debug - det här är möjligheten att felsöka koden på enhetssimulatorn, Target- Release är konfigurationen för att kompilera applikationen innan den laddas upp till en riktig enhet.
Det sista steget är informationen som sammanfattas för alla inställningar i fönstret Sammanfattning, som du kan läsa igen och se till att allt är rätt valt.
Efter slutförandet av inställningarna visas den framtida applikationen i Project Explorer, klicka på vilket leder till expansion av resursfilerna i Resursfönstret och följande fönster visas:
Efter att ha klickat på formuläret (och i allmänhet på valfri kontroll) på fliken Egenskaper kan du ändra applikationens uppenbara egenskaper, såsom texten i titeln, bakgrundsfärg, närvaro och namn på funktionstangenter.
Jag överförde omedelbart den färdiga knappen, som snällt genererades av miljön, nedan och skrev Beräkna på den. Med GUI Editor är det lätt att få till följande gränssnitt, som är väl lämpat för min uppgift (jag tror att processen att överföra kontroller till ett formulär och ställa in deras egenskaper inte orsakar några svårigheter); den uppenbara etiketten används som etiketter för inmatningsfälten, och EditField används som inmatningsfält; Etiketter används också för att visa resultatet av beräkningar, eftersom deras redigering inte tillhandahålls:
Nu själva kodningen.
Den körande applikationen går igenom flera steg (hjälpen är mycket detaljerad, där kan du ta reda på detaljerna), nu är vi främst intresserade av fasen för att initiera applikationen, för vilken OnInitializing (void)-metoden för formulärklassen är ansvarig för , som finns i filen<ВАША_ФОРМА>.cpp i projektets src-mapp.
Som standard ser den här metoden ut så här:
Resultat Form1 :: OnInitializing (void) (resultat r = E_SUCCESS; // TODO: Lägg till din initialiseringskod här // Få en knapp via resurs-ID __pButtonOk = static_cast
Jag gjorde så här:
skyddad: statisk const int ID_BUTTON_OK = 101; // nytt åtgärds-ID för knappen CLEAR static const int ID_BUTTON_CLEAR = 102; // geodetiska konstanter static const int a = 6378137; statisk konstant float alfa = 1 / 298,257223563; Osp :: Ui :: Kontroller :: Knapp * __ pButtonOk; // nytt fält: knapp Osp :: Ui :: Kontroller :: Knapp * __ pButtonClear; // nya fält: redigeringar och etiketter Osp :: Ui :: Kontroller :: EditField * __ pB_deg; Osp :: Ui :: Kontroller :: EditField * __ pB_min; Osp :: Ui :: Kontroller :: EditField * __ pB_sec; Osp :: Ui :: Kontroller :: EditField * __ pL_deg; Osp :: Ui :: Kontroller :: EditField * __ pL_min; Osp :: Ui :: Kontroller :: EditField * __ pL_sec; Osp :: Ui :: Kontroller :: EditField * __ pH; Osp :: Ui :: Kontroller :: Etikett * __ pX; Osp :: Ui :: Kontroller :: Etikett * __ pY;
Nu, i OnInitializing (void)-metoden, kan du skapa en Rensa-knapp och tilldela en Id-åtgärd och en Event Listener till den. Låt oss göra samma sak med EditField och Label, utan att lägga till dem dock, Id Action och Event Listener, eftersom deras svar på användaråtgärder inte tillhandahålls i vår enkla applikation (IDC_BUTTON1, IDC_EDITFIELD1, etc. är värdena för namnet egenskap för knappen).
PButtonOk = static_cast
Redan i detta skede kan du starta applikationen och se hur data läggs in i simulatorn, men det är naturligtvis ingen fördel förrän knapptryckningshändelserna behandlas.
För att lösa detta problem används metoden OnActionPerformed (const Osp :: Ui :: Control & source, int actionId) för formklassen. Som du kan se är den andra parametern det åtgärds-ID som redan nämnts ovan. När applikationen körs "lyssnar" den efter knappklickshändelser och det åtgärds-ID som tilldelats dem skickas till OnActionPerformed (const Osp :: Ui :: Kontroll & källa, int actionId). Om det finns bearbetning för en sådan identifierare görs den.
I OnActionPerformed finns en switch-stub för att analysera actionId-parametern, det är bekvämt att använda den. Därefter kommer jag att tillåta mig själv att ge koden för denna metod med detaljerade kommentarer:
Void Form1 :: OnActionPerformed (const Osp :: Ui :: Control & source, int actionId) (const int MAX_BUFF_SIZE = 512; switch (actionId) (fall ID_BUTTON_OK: // reaktion på att trycka på knappen Beräkna (// få en strängrepresentation) av grader, minuter och latitudsekunder och ... String B_deg_str (__ pB_deg-> GetText ()); String B_min_str (__ pB_min-> GetText ()); String B_sec_str (__ pB_sec-> GetText ()); //. .. längder String L_deg_str -> GetText ()); String L_min_str (__ pL_min-> GetText ()); String L_sec_str (__ pL_sec-> GetText ()); // ... höjder String H_str (__ pH-> GetText ()); double B_deg, B_min , B_sec; double L_deg, L_min, L_sec; double H; // konvertera strängrepresentationer av tal till reell form för beräkningsresultat r1 = Double :: Parse (B_deg_str, B_deg); resultat r2 = Double :: Parse (B_min_str, B_min); resultat r3 = Dubbel :: Parse (B_sec_str, B_sec); resultat r4 = Dubbel :: Parse (L_deg_str, L_deg); resultat r5 = Dubbel :: Parse (L_min_str, L_min); resultat r6 = Dubbel :: Parse (L_sec_str, L_sec ); resultat r7 = Dubbel :: Pars e (H_str, H); // beräkningar dubbla b_in_decimal = B_deg + B_min / 60 + B_sek / 3600; dubbel l_in_decimal = L_deg + L_min / 60 + L_sek / 3600; dubbel eSqr = 2 * alfa- (alfa * alfa); dubbel N = a / Math :: Sqrt (1-eSqr * (Math :: Sin (b_in_decimal)) * (Math :: Sin (b_in_decimal))); dubbel X = (N + H) * Math :: Cos (b_in_decimal) * Math :: Cos (l_in_decimal); dubbel Y = (N + H) * Math :: Cos (b_in_decimal) * Math :: Sin (l_in_decimal); Sträng strX; Sträng strY; // konvertera numeriska koordinatvärden till strängrepresentation strX.Format (MAX_BUFF_SIZE, L "% f", X); strY.Format (MAX_BUFF_SIZE, L "% f", Y); // visa de mottagna numren i etiketten __pX-> SetText (L "X =" + strX); __ pY-> SetText (L "Y =" + strY); __pX-> Draw (); __ pY-> Draw (); __pX-> Visa (); __ pY-> Visa (); ) ha sönder; case ID_BUTTON_CLEAR: (// reaktion på att trycka på knappen Rensa // skapa en dialogruta med OK och CANCEL-knapparna och en fråga - rensa alla fält? MessageBox * pMessageBox = new MessageBox (); pMessageBox-> Construct (L "MessageBox", L "Rensa alla fält? ", MSGBOX_STYLE_OKCANCEL, 9000); int ModalResult; pMessageBox-> ShowAndWait (ModalResult); // om svaret är positivt, sedan ... if (ModalResult == MSGBOX_RESULT_OK) (// ... clear inmatningsfälten och etikett __pB_deg-> Rensa (); __pB_min-> Rensa (); __pB_sec-> Rensa (); __pL_deg-> Rensa (); __pL_min-> Rensa (); __pL_sec-> Rensa (); __pH-> Rensa (); __pX -> SetText (L "X ="); __ pY-> SetText (L "Y =");) // radera MessageBox radera pMessageBox;) break; default: break; ))
Utseendet på simulatorn med det pågående programmet ser ut så här:
Samma med MessageBox:
Det verkar vara allt. Jag vill notera att ansökan inte alls utger sig för att vara bred och korrekt i alla sina formuleringar, till exempel finns det inget "idiotsäkert" alls, eftersom jag hoppas på förståndet hos min vän och fyra av hans kollegor för vilka detta program är avsett.
På senare tid mottogs en annan applikation för utveckling för Bada - det är nödvändigt att söka och visa de närmaste objekten på kartan, såsom bankomater eller kontopåfyllningsterminaler. Om det här ämnet är intressant för någon delar jag gärna med mig av mina erfarenheter.
Om någon har en fråga om vad som faktiskt ska göras med programmet härnäst, så behandlas detta i detalj i artiklarna på Bada Developer-webbplatsen, jag kommer inte att beröra detta, eftersom programmering fortfarande är ett mer komplicerat ämne.
Applikationskällor är tillgängliga
Generellt sett är jag absolut ingen anhängare av sådant. Jag anser att utvecklare ska få pengar för sitt arbete. Jag är dock övertygad om att en vuxen, solvent person kommer att köpa ett spel eller program om han gillar det. Tyvärr kan inte allt provas utan att köpa, och därför ser det ur detta perspektiv att installera betald programvara för bekantskap ganska acceptabelt. Det finns i alla fall ett sätt och det fungerar. Dessutom, med tanke på det, och det vidare ödet för ägarna av badafones är generellt obegripligt, anser jag i slutändan inte att det är skamligt att använda utvecklingen.
Så, som alltid, varnar jag er - sättet fungerar. Jag testade det själv. Men i alla fall, om du stör din enhets prestanda är det bara dina problem. Gör allt enligt instruktionerna och allt kommer att fungera som en klocka. Handla.
Låt oss börja.
Jag testade den här metoden på Samsung S8500 Wave och officiell ukrainsk firmware. Du kan ladda ner den av.
Vi behöver inte mycket.
1. Multiloader - ta det förbi. Vilken version som helst, men jag skulle ta den sista.
2. Filen apps_Compressed_spoof_Wave_I.bin - ladda ner den från länken (detta är för den första vågen, för Ukraina)
Installera Angry Birds.
Först och främst flashar vi apps_Compressed_spoof_Wave_-filen för oss själva (beroende på vilken våg du har). Detta görs en gång. För att göra detta, starta Multiloader och välj LSI, Boot Change och Full Download. Skärmdumpen är klickbar:
Lägg till din fil. Du kan bara dra den till programfönstret. Vi stängde av telefonen. Vi håller samtidigt ned volymknappen + lås + slå på (röd pipa). Nedladdningsläget tänds. Sedan portsökning. Ladda sedan ner. Om du någonsin har sytt din egen telefon är detta inga nyheter för dig.
Filen är hårdkopplad - bra.
Sedan packar vi upp Bada Wave Spoof (programmet finns i arkivet). Hitta följande fil inuti: BadaCertificate.cer. Kopiera den till din telefon (oavsett var, men bättre till mappen Andra). Vi går in i telefonen i mappen där du kopierade den och trycker på filen. Håll med om varningen och installera certifikatet.
Vi packar upp arkivet med spelet eller applikationen, i vårt fall AngryBirds.rar-arkivet och anger sökvägen till mappen och i synnerhet till filen med namnet på spelet application.exe (i vårt fall AngryBirds.exe) .
Mest troligt kommer filen att finnas i Bin-mappen. Markera rutan som visas på skärmdumpen. Tryck först på knappen 1. Signera och sedan på knappen 2. Byt namn.
Tryck först på knappen 1. Signera
Alla är här. Gå till fliken Kopiera. Vi klipper telefonen i läget för flyttbar disk och väljer minneskortet i rullgardinsmenyn. Om inte, tryck på knappen med två gröna pilar bredvid. Vi väntar på att den ska laddas.
Efter framgångsrik kopiering. Vi klipper av telefonen och går till telefonen längs vägen Inställningar - Allmänt - Installationsplats - välj minneskortet. Vi slår på telefonen i Samsung Kies-läge.
Nyligen lyckades jag bli ägare till en "smartphone" Samsung Wave 525 med operativsystemet Bada. I grund och botten behövde jag bara två funktioner från telefonen - en musikspelare, som du kan koppla in vanliga hörlurar med ett 3,5-miniuttag i, och internetåtkomst via Wi-Fi. Den helt nya Wave 525 klarar allt med varierande framgång. "Men, - tänkte jag, - eftersom han har modet att kalla sig en smartphone måste du ladda honom till fullo." Och han började ladda.
Alla "native" applikationer på en telefon med Bada-systemet installeras via Samsung Apps store. Du kan ansluta till den antingen genom applikationen med samma namn på din telefon eller genom en anslutning till en dator med Samsung Kies-skrivbordsprogrammet. Eftersom jag ännu inte har skaffat hem Wi-Fi, valde jag det andra alternativet.
När jag kopplade min telefon till min dator erbjöd Kies sig omedelbart att uppdatera firmware. Det bör noteras här att jag fortfarande har minnen av att uppdatera firmware med ett proprietärt program på min tidigare telefon - Sony Ericsson k800i. Uppdateringsprogrammet laddades ner från den officiella ryskspråkiga webbplatsen, uppdateringen av firmware var framgångsrik. Efter det fick jag i händerna en underbar engelskspråkig telefon utan några tecken på det ryska språket. Efter det skrev jag till teknisk support flera gånger - roboten skickade tillbaka mig varje gång två brev om att de öppnat en biljett för mitt problem och så småningom kommer att lösa det. Denna lyckliga tid kom aldrig.
Men nog med lyriska utvikningar. Jag kastade bort min sorgliga upplevelse och tryckte ändå på knappen "Uppdatera firmware". Och... ingenting hände. Telefonen kopplades ur, anslöt sedan igen och fönstret med ett förslag om att uppdatera firmware kom ut igen. Teknik gör underverk.
I appbutiken tittade jag på priserna och lugnade ner mig lite. Jag var rädd att priserna i den ukrainska grenen av Samsung Apps på något sätt var oöverkomligt galna. Detta är inte helt sant - mestadels varierar priserna för betalda applikationer från 10 till 50 hryvnia, förutom att det finns en hel del gratis programvara. Även om, som det visade sig senare, kvantitet här inte började bli kvalitet.
Jag slogs omedelbart av den nästan fullständiga frånvaron av lokaliserade ansökningar. Dessutom, inte bara på bekant och relativt begriplig engelska, utan också på helt oläsbar arabiska, kinesiska (japanska? koreanska? Gå och urskilj dessa hieroglyfer ...). Jag blev särskilt förvånad över det otroliga överflöd av ansökningar med efterskriften "endast vietnamesiska" (endast på vietnamesiska). Och det här är i den ukrainska delen av butiken! Var någon för lat för att avslöja distributionsregionerna?
Tack vare detta "noggsamma" urval av applikationer liknar hela butiken en dump av undermåliga program. Jag hittade fortfarande styrkan att gräva i det och på ett par dagar skottade jag nästan alla gratisapplikationer. Efter det dök min smartphone upp: tre typer av pianon av olika grad av elände, flera hämmande leksaker, ett hämmande men trevligt anteckningsprogram, Pipeline Dropbox-klienten, ett program med ljud för avkoppling och ett enkelt program som heter Vibrator (gissa vad det gör det). Allt. Extremt användbar programvara, ingen tvekan om det. För att läsa böcker var jag tvungen att installera javaapplikationen Foliant (ett utmärkt program förresten). En vanlig mediaspelare för att ersätta telefonens dåliga ljud- och videospelare hittades inte ens i betalprogram.
Road av närvaron av en betald klient för Vkontakte från GlobalLogic inc - "Kontakt". På skärmdumparna ser programmet ganska anständigt och till och med vackert ut. Åtminstone är detta nästan den enda applikationen som i design liknar själva gränssnittet på telefonen och verkar vara "native" - och det kan inte sägas ens om vissa applikationer som ingick i paketet. Men jag köpte inte den här applikationen, för jag hade inte fattat varför jag behövde den.
Sådana är intrycken. Människorna på dessa era Internet säger att Bada är ett väldigt ungt operativsystem, det är därför hela röran. Låt oss se om normala applikationer dyker upp med tiden, butiken kommer att ställas i ordning. Än så länge är allt dåligt.
» Whatsapp för Bada
Om du är ägare till en Samsung-smarttelefon som kör operativsystemet Bada, kommer du inte att kunna installera Whatsapp med ett enda klick på en knapp. För att installera måste du ladda ner gratis Whatsapp för Bada och sedan installera.
Watsap for Bud är en speciell installationsfil anpassad för detta operativsystem. Det här är en inofficiell version av budbäraren, men den fungerar stabilt och ger möjlighet att njuta av alla fördelar med Watsap. Tillverkarna av smartphones med detta operativsystem förblev döva för användarnas önskemål att porta denna applikation till Bada-plattformen.
Bada är ett operativsystem för Samsung Wave-seriens modeller, som är ett modifierat Android OS. Eftersom detta inte är helt Android hittar du inte heller Watsap i appbutikerna för Bad. Men tack vare omtänksamma programmerare kan vi ladda ner den anpassade Whatsapp-filen för Bada och installera den ryska versionen.
Installationsprocess
1. Ladda ner WhatsApp-filen med filtillägget .apk. Du kan ladda ner det till din dator och sedan överföra det till din telefon, eller omedelbart ladda ner det från din telefon. Filen är ganska stor (cirka 35 MB), så om du inte har obegränsat internet på telefonen är det bättre att ansluta till ett Wi-Fi-nätverk och sedan ladda ner. Vanligtvis laddas den här filen inte ner i arkivet, utan omedelbart som en installationsfil. Därför behöver du inte packa upp den eller göra några andra ytterligare steg.
2. Kör filen, vänta på installationen. Om du vid uppstart får meddelanden om behovet av att ändra säkerhetsinställningarna, inaktivera det. Efter installationen, se till att slå på den igen! Du kan också behöva tillstånd för att komma åt Internet, kamera, mikrofon, etc. Vi tillåter allt, annars kommer programmet inte att installeras.
3. Vi registrerar oss i whatsapp med hjälp av telefonnumret och SMS med bekräftelse, och börjar använda!
Efter registrering och inloggning kommer du att kunna via Whatsapp:
- kommunicera med hjälp av textmeddelanden, ljud- eller videokonferenser;
- skicka foton, videor, dokument, lägg till uttryckssymboler;
- delta i kommunikation i allmänna grupper;
- se vem som redan har whatsapp från din kontaktbok och bjud in de som ännu inte har installerat den.
Det finns inte många modeller av telefoner och smartphones som släpps för operativsystemet Bada, men de finns, och det är troligt att Samsung i framtiden kommer att fortsätta att producera smartphones med detta operativsystem. Nu är alla "Wave"-smarttelefoner utrustade med Bada OS. Den kompletta listan över modeller finns i tabellen nedan.