Android рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП ADB рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░реЗрдВ рдкреНрд▓рдЧрдЗрди (IntelliJ IDEA)


рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рддрд░реНрдХ рдЦреЛ рджрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ рдЧрдВрдЬрд╛ рд╣реЛрдирд╛ рдкрдбрд╝рд╛ред рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рдореЗрд░реЗ рд╕рд┐рд░ рдХреЗ рд▓рд┐рдП рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рд░реЛрдХрд╛, рдФрд░ рдпрд╣ рдмрд╛рд╣рд░ рд╢рд░реНрдо рдХреА рдмрд╛рдд рдереА, рддреЛ рдореИрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдЬрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдкреНрд▓рдЧ-рдЗрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рд╕реЗрдЯред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рд░рд▓ рд╣реИ, рдПрдХ рдпреБрдЧреНрдорд┐рдд рдордХреНрдХрд╛ рд╕рд┐рд▓ рдХреА рддрд░рд╣, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдореИрдВ рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рдЖрдЬ рдореИрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдЖрдкрдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╡рд╣ рд╣реИ рдЬреЛ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ ( AltGraph + U рджреНрд╡рд╛рд░рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ):

рдпрд╣рд╛рдБ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (verред 1.0.1): github.com/Ghedeon/ADB-Uninstall/releases
рд╕реНрдерд╛рдкрдирд╛: рд╕реЗрдЯрд┐рдВрдЧреНрд╕ тЖТ рдкреНрд▓рдЧрдЗрдиреНрд╕ тЖТ рдбрд┐рд╕реНрдХ рд╕реЗ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ...
рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдкреНрд▓рдЧрдЗрди рдХрдЪреНрдЪрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬреЛ рд▓реЛрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреЗред рдореИрдВ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ рд╕рд╣реА рдХрд░реВрдВрдЧрд╛ред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдореАрдХреНрд╖рд╛рдПрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ, рд╕реБрдЭрд╛рд╡ - рд╕рдм рдХреБрдЫ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реИ!

рдпрд╣рд╛рдБ Android рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдХреБрдЫ рд░реЛрдЬрд╝ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЯреАрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп):

рдЙрдкрдпреЛрдЧ рдХреЗрд╕ 1:
рдЯреАрдо рдПрдХ рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЖрдкрдиреЗ рдмрд╕ рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдФрд░ рдзреИрд░реНрдпрдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрдирд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИ? рд╕рд╣реА, рд╡рд┐рдлрд▓рддрд╛ [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]ред рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ рд╕рд╣рдпреЛрдЧреА рд╕реЗ рдПрдХ рдЖрд╡реЗрджрди рд╣реИ, рдбреАрдмрдЧ рдХреБрдВрдЬреА рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рдХреНрд░рдорд╢рдГ, рдЕрдкрдбреЗрдЯ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рд╢рд╛рдк рджреЗрддреЗ рд╣реБрдП, рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЪрдврд╝ рдЬрд╛рддреЗ рд╣реИрдВ, "adb uninstall <package>" рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ рд▓рдЧрднрдЧ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдмрд╛рдЗрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХреИрд╕реЗ "adb uninstall <package>" рд╣реИред

рдЙрдкрдпреЛрдЧ-рдХреЗрд╕ 2:
рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ "adb uninstall" рдмрд╛рдж рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рджреЛ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ рдФрд░ рдПрдбреАрдмреА рдХреЛ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реИред рдЕрдкрдиреЗ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдХреА рдкреВрд░реА рдореВрд░реНрдЦрддрд╛ рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рддреЗ рд╣реБрдП, рдирд┐рд░рд╛рд╢ рднрд╛рд╡рдирд╛рдУрдВ рдореЗрдВ рдЖрдк "adb devices" рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, "adb devices" рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ "adb -s <deviceId> uninstall <package>" рдФрд░ рджреБрдирд┐рдпрд╛ рдЖрдкрдХреЛ рдЖрддреНрдорд╕рдорд░реНрдкрдг рдХрд░рддреА рд╣реИред

рдЙрдкрдпреЛрдЧ-рдХреЗрд╕ 3:
рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рд╕рднреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЦреИрд░, рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдПрдХ рдкрдЯрдХрдерд╛ рд▓рд┐рдЦреА рдЬрд╛рдПрдЧреА рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рдкреВрд░реА рд░рд╕реЛрдИ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рджреЗрдЧреАред

рдЙрдкрдпреЛрдЧ рдХреЗрд╕ 4:
рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк "adb uninstall <package>" рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВред

рд╕рдорд╛рдзрд╛рди:

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рддрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рдЕрдиреБрдХреВрд▓ рдерд╛, рдЬрдм рддрдХ рдХрд┐ рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдиреЗ рдЯреАрдо рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕рдВрдкрд░реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдорд╛рдВрдЧ рдирд╣реАрдВ рдХреАред рдХрд┐рд╕реА рдХреЗ рддреЛрддреЗ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк, рдЬреЛ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╡реНрдпрд╕реНрдд рджрд┐рдЦрдиреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╢рд┐рд▓реНрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА
 #!/bin/bash package=`grep -o 'package=".*"' AndroidManifest.xml | grep -o \".* | sed 's/"//g'` #adb uninstall $package adb devices | tail -n +2 | awk '{print $1}' | xargs -I {} adb -s {} uninstall $package 


рдбрд┐рдЬрд╝рд╛рдЗрди


рдЖрдИрдбреАрдП рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд▓реБрд╕реАрдлрд░ рд╕реЗ рд╕рд╛рдд рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕реНрдорд╛рд░рдХ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдХреЗрд╡рд▓ рд▓рд╛рдЧрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдИрдбреАрдИ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╕реЗрдЯрдЕрдк рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдЗрдЯрдо рдХреЛ рдореЗрдиреВ рдФрд░ / рдпрд╛ рдЯреВрд▓рдмрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ AnAction рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдФрд░ рдПрдХреНрд╢рдирдкрд░реНрдлрд╝рд░реНрдб () рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Android SDK рдХреЗ рдкреВрд░реНрдг рдкрде рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ:
 ProjectRootManager.getInstance(event.getProject()).getProjectSdk().getHomePath(); 

рдпрджрд┐ рд╣рдо рдЗрд╕рдореЗрдВ /platfrom-tools рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рд╕реЗ adb рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдЯрд┐рдкреНрдкрдгреА
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: рдпрд╣ рдЖрд╢рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рднреА рдкрдереЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВред рддрдм рд╣рдореЗрдВ рдПрдХ рдирд┐рд░рдкреЗрдХреНрд╖ рдорд╛рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЙрди рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХ рдУрдПрд╕ рдХреЗ рддрд╣рдд, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдПрдХ рд╣рдЬрд╝рд╛рд░ рдФрд░ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рднреНрдп рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ crammed рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдХрд╣рдиреЗ рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ System.getenv() ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдИ рдФрд░ рдореИрдВрдиреЗ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдмрд╛рдж рдореЗрдВ, рдЖрдИрдбреАрдИрдП рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ delving, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╡реЗ, рдореЗрд░реА рддрд░рд╣, рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдореЗрдВ рдЬреБрдбрд╝реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ:
 Process pr = Runtime.getRuntime().exec(toolPath + File.separator + "adb devices"); 

рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рд╕реЗ Runtime.exec() рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, IDEA рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рдХреЛрд╖реЗрд░ GeneralCommandLine рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рдЪ рдореЗрдВ, рдореБрдЭреЗ рдЕрднреА рднреА TODO рдореЗрдВ рдпрд╣ рд╕рдВрдХреНрд░рдордг рд╣реИ рдФрд░ рдЕрдЧрд░ рдХреЛрдИ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИ рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ред

рдЕрдм рдЖрдкрдХреЛ рдЙрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо рд╣рдЯрд╛ рджреЗрдВрдЧреЗред рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреИрдХреЗрдЬ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрднреА рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдореЙрдбреНрдпреВрд▓ рдХреЗ AndroidManifest.xml рд╕реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рд▓реЗрдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛, рдЖрдк рдЙрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рд╡рд╛рдВрдЫрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдирддреАрдЬрддрди, рдореИрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рд╕рдорд╛рдзрд╛рди рдкрд░ рдмрд╕ рдЧрдпрд╛ - рдкреИрдХреЗрдЬ рдХреЗ рдирд╛рдо рдХреЛ рдореМрдЬреВрджрд╛ рд▓реЙрдиреНрдЪ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВ рд╕рдордЭрд╛ рджреВрдВрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд░рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ред рдЗрд╕ рд░рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рдмрдирд╛рддреЗ рд╕рдордп, рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдм рдореЗрдВ, рдЖрдк рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рд╕реЗ, рд╣рдо рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рд▓реЗрдВрдЧреЗред рдпрджрд┐ рдХрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИрдВ, рддреЛ рд╣рдо рд╡рд╣реА рд▓реЗрдВрдЧреЗ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╣реИред
рд╣рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд┐рд▓рддрд╛ рд╣реИ:
 RunManager runManager = RunManager.getInstance(event.getProject()); ModuleBasedConfiguration selectedConfiguration = (ModuleBasedConfiguration) runManager.getSelectedConfiguration().getConfiguration(); 

рдЕрдЧрд▓рд╛ рдЪрд░рдг AndroidManifest.xml рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рдкрде рдвреВрдВрдв рд░рд╣рд╛ рд╣реЛрдЧрд╛ред рдкреБрд░рд╛рдиреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрдбрд╝ рд╣реЛрдЧреАред рдЧреНрд░реЗрдбрд▓ -рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ currentModulePath / src / main рд╣реИ , рдЬрд┐рд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрдбрд╝ рд╣реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ:
 Module module = selectedConfiguration.getConfigurationModule().getModule(); currentModuleFilePath = module.getModuleFilePath(); String currentModulePath = currentModuleFilePath.substring(0, currentModuleFilePath.lastIndexOf(File.separator)); 

рдкреИрдХреЗрдЬ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА Stax рдкрд╛рд░реНрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ AndroidManifest.xml рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ ( рдбрд┐рд╡рд╛рдЗрд╕рдЖрдИрдб рдФрд░ рдкреИрдХреЗрдЬ ) рд╕реАрдзреЗ рдПрдбреАрдмреА рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рдПрдХ рдФрд░, рдЬреНрдпрд╛рджрд╛рддрд░ рдХреЙрд╕реНрдореЗрдЯрд┐рдХ, рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕рдЖрдИрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдзрд┐рдХ рдорд╛рдирд╡-рдкрдардиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдкреНрд░рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
 adb -s <deviceId> shell cat /system/build.prop; 

рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд▓рдВрдмреА рд╕реВрдЪреА рд╣реЛрдЧреА (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рд╣реИ)ред рд╣рдо рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 ro.product.manufacturer ro.product.model ro.build.version.release ro.build.version.sdk 

рдирддреАрдЬрддрди, рд╕рд╛рд░ рд╡рд░реНрддрдиреА R32CC02G02Z рдХреЗ рдмрдЬрд╛рдп , рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЧрд░реНрд╡ рд╣реЛрдЧрд╛: "рд╕реИрдорд╕рдВрдЧ рдиреЗрдХреНрд╕рд╕ 10 рдПрдВрдбреНрд░реЙрдЗрдб 4.3 (рдПрдкреАрдЖрдИ 18) ред "

рдмрд╛рдд рдЫреЛрдЯреА рд╣реИ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕ рд╕рднреА рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбрд▓ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдЪрдпрдирд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░, рдПрдХ рдЬреАрд╡рд┐рдд рдХрддрд╛рд░ рдХреЗ рдХреНрд░рдо рдореЗрдВ, рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдПрдбреАрдмреА рдХреА рд╕реНрдерд╛рдкрдирд╛ рд░рджреНрдж рдХрд░реЗрдВ :
 Process pr = Runtime.getRuntime().exec(toolPath + File.separator + "adb -s " + device.getSerialNumber() + " uninstall " + packageName); 

рд╡рд╣ рд╕рдм рд╣реИред

GitHub рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЛрд░реНрд╕ рдХреЛрдб: github.com/Ghedeon/ADB-Uninstall ред

рдкреВрд░рдХ:


рдореИрдВ рдпреВрдЬрд░реНрд╕ рд▓реВрд╕реАрдлрд░ рдФрд░ рдпреЛрд▓ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдЙрдирдХреА рдЕрдЪреНрдЫреА рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реВрдВред

Source: https://habr.com/ru/post/In194514/


All Articles