
Skriuwen · 31 des 2020
Wurkje mei bysûndere hardware út Sina
Oer software ûntwikkelje sûnder hantlieding
Dizze moanne krige ik in pakket út Sina mei bysûndere hardware: Android-apparaten mei ynboude printers! Om it libben makliker te meitsjen foar de restaurant- en bedriuwseigners dy’t myn app foar itenbestellingen brûke, wol ik dat dizze apparaten nije bestellingen automatysk ôfprintsje. As ik dizze masines mar mei myn software wurkjend krij... útdaging oannommen!
App foar itenbestellingen
Fia in tige optimalisearre webshop kinne minsken iten bestelle foar ôfhelje en levering. Myn klanten binne restaurants en winkeleigners dy't harren produkten fia de app ferkeapje. Bestellingen wurde trochstjoerd nei it keuken- en leveringspersoneel, sadat alles taret en ôflevere wurdt.

Needsaak fan in printer
Yn de ôfrûne moannen haw ik funksjes tafoege om myn klanten te helpen har online winkels better te behearen. In faak heard fersyk is om ôf te kommen fan de kompjûter of tablet yn 'e keuken dy't se no brûke moatte om online bestellingen te benaderjen. Yn stee fan in grutte en lompe kompjûter socht ik in kompakt alternatyf.
Android mei ynboude printer
Nei wat graven troch ferskate ynternasjonale merkplakken koe ik kontakt opnimme mei in Sineeske hardwareleveransier dy't in Android-apparaat mei in yntegrearre printer makke hat! In pear wiken letter kaam it oan út Sina - wat in prachtige wrâld wêr't wy yn libje!

Dit is in ynteressant stik hardware, want it is:
- kompakt (yn ferliking mei in gewoane PC, tablet of laptop)
- it kin op batterijen en op direkte stroom wurkje
- wurket op WiFi en hat de opsje foar mobyl ynternet fia 4G
- hat in grut touchscreen
- it kin native Android-apps útfiere
- it hat tagong ta it web
- it hat in yntegrearre printer!

De yntegrearre printer is supernuttich, want hjirmei wurdt it apparaat in totaaloplossing foar it ôfhanneljen fan online bestellingen. Mei it touchscreen binne bestellingen te benaderjen en kin it apparaat ynsteld wurde om se automatysk ôf te printsjen. Dat makket it maklik om se troch te stjoeren nei it keuken- en leveringspersoneel.

Wat útfiere / software
Om dit allegear mooglik te meitsjen, moat ik oanpaste software op it apparaat útfiere kinne. Hoewol't it Android draait, kamen de apparaten sûnder hantlieding, begelieding of software development kit. Dat betsjut dat ik my yn it apparaat ynwurkje moast troch reverse engineering.
It bêste wat do dan dwaan kinst is wat besykje dat do goed kinst, om te sjen oft do in oare fan dyn apps op it apparaat wurkjend krije kinst. Ik ferbûn it apparaat mei myn Linux-tablet en gie oan it knutseljen! Ik haw tafallich earder in lytse Android-app makke... dat like de perfekte kandidaat om myn ûntwikkelferbining mei it apparaat te testen.

It foardiel fan wat bekends útfiere op ûnbekende hardware is dat do in soarte fan referinsje meitsje kinst foar wat de mooglikheden fan de hardware binne. It docht bliken dat de Android-printer frij kundich is!
Gjin dokumintaasje of SDK
Om de mooglikheden fan de hardware folslein te benutten moast ik útfine hoe't ik de yntegrearre printer programmearje koe. De Sineeske hardwareleveransier hat de printer op in net-standert Android-wize yntegrearre (foar safier't der in standert wize op Android is..). De apparaten dy't ik krige kamen sûnder software of boarnekoade, in echte teloarstelling!
Ik ûndersocht de serie- en modelnûmers fan it OEM-apparaat. Ik socht nei elke oanwizing dy't ik fine koe en socht op it ynternet nei ferlykbere apparaten. Miskien koe ik in stik (besibbe) boarnekoade fine dat my in begjinpunt jaan soe om op dit apparaat te wurkjen.
Java-koade reverse engineeren
Nei oeren fan ûndersyk fûn ik op in ôfstân hoekje fan it ynternet in pakket mei wat boarnekoade foar in ferlykber apparaat! It probleem wie... it wie allegear yn it Sineesk!


Ik analysearre de boarnekoade en kaam gau efter de basis fan hoe't it wurke. Mei Google Translate ûntduts ik dat guon dielen fan de boarnekoade beheind of net folslein stipe wiene. Mar it joech my teminsten in begjinpunt! Úteinlik koe ik de Sineeske boarnekoade net allinnich lêze, ik koe der ek software foar skriuwe!

De folgjende stap wie in testprogramma te meitsjen dat testen koe oft de oanpaste Sineeske boarnekoade echt wurkje soe. As ik slagge, koe ik begjinne mei it skriuwen fan echte software foar de Android-printer, software dy't úteinlik troch myn klanten brûkt wurde sil. Nou... en wat bliek: it wurke! De printer begûn wat lûd te meitsjen en voila: in Lemmid-logo ferskynde!

Konklúzje
Dit is briljant spul! Ik bin echt bliid dat ik in manier fûn haw om software te skriuwen foar dizze bysûndere hardware. Dêrmei kin ik de hardware yntegrearje yn it platfoarm dat ik foar myn klanten bou.
As der ien ding is om fan dit berjocht mei te nimmen, is it dat do soms gewoan besykje moatst om te sjen oft do útfine kinst hoe't dingen wurkje kinne. Want allinnich as do it net besiket, kinst do wis wêze dat it net wurket!