You can use the 'Nordic UART' Bluetooth LE service provided by Bangle.js out of the box. Then you're communicating direct with Bangle.js's REPL - so basically you send JS commands followed by a newline and they're executed.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Maybe your best port of call is https://github.com/NordicPlayground/Android-nRF-UART
You can use the 'Nordic UART' Bluetooth LE service provided by Bangle.js out of the box. Then you're communicating direct with Bangle.js's REPL - so basically you send JS commands followed by a newline and they're executed.
https://www.espruino.com/Interfacing#bluetooth-le probably gives you a good idea of what sort of thing you can do.
You can of course create custom Bluetooth characteristics but I think for most things that's overkill