I have consulted several topics on the subject, but I didn't see any related to launching an app on a device directly using a ppadb command.
I managed to do this code:
import ppadb
import subprocess
from ppadb.client import Client as AdbClient
# Create the connect functiun
def connect():
   client = AdbClient(host='localhost', port=5037)
   devices = client.devices()
   for device in devices:
       print (device.serial)
   if len(devices) == 0:
       print('no device connected')
       quit()
   phone = devices[0]
   print (f'connected to {phone.serial}')
   return phone, client
if __name__ == '__main__':
    phone, client = connect()
    import time
    time.sleep(5)
    # How to print each app on the emulator
    list = phone.list_packages()
    for truc in list:
       print(truc)
# Launch the desired app through phone.shell using the package name
phone.shell(????????????????)
From there, I have access to each app package (com.package.name). I would like to launch it through a phone.shell() command but I can't access the correct syntax.
I can execute a tap or a keyevent and it's perfectly working, but I want to be sure my code won't be disturbed by any change in position.
 
     
     
    