Wurkje mei bysûndere hardware út Sina

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.

Minsken brûke de app om iten te bestellen - bestellingen wurde trochstjoerd nei it keuken- en leveringspersoneel
Minsken brûke de app om iten te bestellen - bestellingen wurde trochstjoerd nei it keuken- en leveringspersoneel

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!

Hânhelden Android-terminal - OEM-hardware rjocht út Sina
Hânhelden Android-terminal - OEM-hardware rjocht út Sina

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!
It draait Android - mei in Sineesk sausje der oerhinne (figuerlik sein...)
It draait Android - mei in Sineesk sausje der oerhinne (figuerlik sein...)

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.

Syn partytrúk is de ynboude printer - supernuttich by it ôfhanneljen fan (online) bestellingen
Syn partytrúk is de ynboude printer - supernuttich by it ôfhanneljen fan (online) bestellingen

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.

Snake '97 op de Lemmid Printer - ha!
Snake '97 op de Lemmid Printer - ha!

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!

Sineeske koade om de printer te litten wurkjen... hoe soe in minske dit ea begripe kinne?
Sineeske koade om de printer te litten wurkjen... hoe soe in minske dit ea begripe kinne?
Google Translate komt te help!
Google Translate komt te help!

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!

Java-koade om de printer oan te stjoeren
Java-koade om de printer oan te stjoeren

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!

JA! De printer printet it "Lemmid"-logo op in kaartsje!
JA! De printer printet it "Lemmid"-logo op in kaartsje!

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!

← Mear ferhalen