mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
Use gradlew instead of custom gradle installation
This commit is contained in:
@@ -199,7 +199,6 @@ public class EditorActivity extends StudioActivity implements FileTreeFragment.F
|
||||
mBuildServiceHandler = new BuildServiceHandler(this);
|
||||
mFileOptionsHandler = new FileOptionsHandler(this);
|
||||
|
||||
getApp().checkAndUpdateGradle();
|
||||
startServices();
|
||||
|
||||
KeyboardUtils.registerSoftInputChangedListener(this, __ -> onSoftInputChanged());
|
||||
|
||||
@@ -73,7 +73,6 @@ public class SplashActivity extends StudioActivity
|
||||
}
|
||||
|
||||
private void goToMain() {
|
||||
getApp().checkAndUpdateGradle();
|
||||
mHandler.removeCallbacks(mRunnable);
|
||||
mHandler.postDelayed(mRunnable, 1000);
|
||||
}
|
||||
|
||||
@@ -314,22 +314,6 @@ public class StudioApp extends MultiDexApplication
|
||||
return new StringBuffer().append(getAssetsDataFile()).append(str).toString();
|
||||
}
|
||||
|
||||
public void checkAndUpdateGradle() {
|
||||
File gradle = new File(Environment.GRADLE_HOME, "bin/gradle");
|
||||
if(gradle.exists()) {
|
||||
String[] txt = FileUtil.readFile(gradle.getAbsolutePath()).split("\n");
|
||||
if(txt != null && txt.length > 1) {
|
||||
String line1 = txt[0];
|
||||
if(line1.startsWith("#!")) {
|
||||
txt[0] = "";
|
||||
}
|
||||
FileUtil.writeFile(gradle.getAbsolutePath(), TextUtils.join("\n", txt));
|
||||
if(!gradle.canExecute())
|
||||
gradle.setExecutable(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public StudioUtils getUtils() {
|
||||
return mUtils == null ? mUtils = new StudioUtils(this) : mUtils;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,8 @@ import org.eclipse.lsp4j.DidChangeWatchedFilesParams;
|
||||
import org.eclipse.lsp4j.FileChangeType;
|
||||
import org.eclipse.lsp4j.FileEvent;
|
||||
import com.blankj.utilcode.util.ThreadUtils;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class IDEService implements ShellServer.Callback {
|
||||
|
||||
@@ -238,8 +240,9 @@ public class IDEService implements ShellServer.Callback {
|
||||
final PreferenceManager prefs = app.getPrefManager();
|
||||
final List<String> args = new ArrayList<>();
|
||||
|
||||
args.add("gradle");
|
||||
args.addAll(tasks);
|
||||
args.add("sh");
|
||||
args.add("gradlew");
|
||||
args.addAll(asAppTasks(tasks));
|
||||
args.add("--init-script");
|
||||
args.add(Environment.INIT_SCRIPT.getAbsolutePath());
|
||||
|
||||
@@ -262,6 +265,17 @@ public class IDEService implements ShellServer.Callback {
|
||||
|
||||
return TextUtils.join(" ", args);
|
||||
}
|
||||
|
||||
private Collection<? extends String> asAppTasks(List<String> tasks) {
|
||||
return tasks.stream()
|
||||
.filter(t -> t != null)
|
||||
.map(t -> asAppModuleTask(t))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private String asAppModuleTask (String name) {
|
||||
return name.startsWith(":app:") ? name : ":app:" + name;
|
||||
}
|
||||
|
||||
public IDEProject getIDEProject () {
|
||||
return mIDEProject;
|
||||
@@ -283,7 +297,7 @@ public class IDEService implements ShellServer.Callback {
|
||||
Environment.mkdirIfNotExits(Environment.TMP_DIR);
|
||||
currentTask = task;
|
||||
listener.appendOutput(task, getString(R.string.msg_task_begin, currentTime(), task.getName()));
|
||||
shell.bgAppend(String.format("cd \"%s\"", new File(projectRoot, "app").getAbsolutePath()));
|
||||
shell.bgAppend(String.format("cd '%s'", projectRoot.getAbsolutePath()));
|
||||
shell.bgAppend(getArguments(task.getTasks()));
|
||||
isBuilding = true;
|
||||
listener.prepareBuild();
|
||||
@@ -330,7 +344,7 @@ public class IDEService implements ShellServer.Callback {
|
||||
}
|
||||
|
||||
public void stopAllDaemons() {
|
||||
app.newShell(null).bgAppend("gradle --stop");
|
||||
app.newShell(null).bgAppend(String.format(Locale.US, "cd '%s' && sh gradlew --stop", projectRoot.getAbsolutePath()));
|
||||
if(isBuilding()) {
|
||||
if(listener != null)
|
||||
listener.onBuildFailed(currentTask, getString(R.string.msg_daemons_stopped));
|
||||
@@ -351,9 +365,7 @@ public class IDEService implements ShellServer.Callback {
|
||||
}
|
||||
|
||||
public void updateResourceClasses() {
|
||||
if(mAppModule != null) {
|
||||
execTask(new UpdateResourceClassesTask(mAppModule.viewBindingEnabled));
|
||||
}
|
||||
execTask(new UpdateResourceClassesTask(mAppModule != null && mAppModule.viewBindingEnabled));
|
||||
}
|
||||
|
||||
public String typeString(int type) {
|
||||
|
||||
@@ -33,11 +33,9 @@ public final class Environment {
|
||||
public static final File PROJECT_DATA_FILE;
|
||||
public static final File JLS_JAR;
|
||||
|
||||
public static final File GRADLE_HOME;
|
||||
public static final File GRADLE_PROPS;
|
||||
public static final File GRADLE_USER_HOME;
|
||||
|
||||
public static final File GRADLE;
|
||||
public static final File JAVA;
|
||||
public static final File BUSYBOX;
|
||||
public static final File SHELL;
|
||||
@@ -51,7 +49,6 @@ public final class Environment {
|
||||
|
||||
private static final String DEFAULT_JAVA_HOME = "/data/data/com.itsaky.androidide/files/framework/jdk";
|
||||
private static final String DEFAULT_ANDROID_HOME = "/data/data/com.itsaky.androidide/files/framework/android-sdk";
|
||||
private static final String DEFAULT_GRADLE_HOME = "/data/data/com.itsaky.androidide/files/framework/gradle-7.1.1";
|
||||
|
||||
private static final Logger LOG = Logger.instance("Environment");
|
||||
|
||||
@@ -79,17 +76,11 @@ public final class Environment {
|
||||
IDE_PROPS.putAll(readProperties());
|
||||
ANDROID_HOME = new File(readProp("ANDROID_HOME", DEFAULT_ANDROID_HOME));
|
||||
JAVA_HOME = new File(readProp("JAVA_HOME", DEFAULT_JAVA_HOME));
|
||||
GRADLE_HOME = new File(readProp("GRADLE_HOME", DEFAULT_GRADLE_HOME));
|
||||
|
||||
GRADLE = new File(GRADLE_HOME, "bin/gradle");
|
||||
JAVA = new File(JAVA_HOME, "bin/java");
|
||||
BUSYBOX = new File(BINDIR, "busybox");
|
||||
SHELL = new File(BINDIR, "sh.sh");
|
||||
|
||||
if(!GRADLE.canExecute()) {
|
||||
GRADLE.setExecutable(true);
|
||||
}
|
||||
|
||||
if(!JAVA.canExecute()) {
|
||||
JAVA.setExecutable(true);
|
||||
}
|
||||
@@ -119,11 +110,7 @@ public final class Environment {
|
||||
}
|
||||
return props;
|
||||
}
|
||||
|
||||
public static File getGradleDir() {
|
||||
return GRADLE_HOME;
|
||||
}
|
||||
|
||||
|
||||
public static void setBootClasspath(File file) {
|
||||
BOOTCLASSPATH = new File(file.getAbsolutePath());
|
||||
}
|
||||
@@ -131,8 +118,9 @@ public final class Environment {
|
||||
public static Map<String, String> getEnvironment(boolean publicUse) {
|
||||
final Map<String, String> map = new HashMap<>();
|
||||
map.put("HOME", HOME.getAbsolutePath());
|
||||
map.put("ANDROID_HOME", ANDROID_HOME.getAbsolutePath());
|
||||
map.put("JAVA_HOME", JAVA_HOME.getAbsolutePath());
|
||||
map.put("GRADLE_USER_HOME", GRADLE_USER_HOME.getAbsolutePath());
|
||||
map.put("GRADLE_HOME", GRADLE_HOME.getAbsolutePath());
|
||||
map.put("TMPDIR", TMP_DIR.getAbsolutePath());
|
||||
map.put("PROJECTS", PROJECTS_DIR.getAbsolutePath());
|
||||
map.put("LANG", "en_US.UTF-8");
|
||||
@@ -150,10 +138,6 @@ public final class Environment {
|
||||
map.put("CONFIG_SHELL", SHELL.getAbsolutePath());
|
||||
map.put("TERM", "screen");
|
||||
|
||||
map.put("ANDROID_HOME", ANDROID_HOME.getAbsolutePath());
|
||||
map.put("GRADLE_HOME", GRADLE_HOME.getAbsolutePath());
|
||||
map.put("JAVA_HOME", JAVA_HOME.getAbsolutePath());
|
||||
|
||||
/**
|
||||
* If LD_LIBRARY_PATH is set, append $SYSROOT/lib to it,
|
||||
* else set it to $SYSROOT/lib
|
||||
@@ -177,7 +161,6 @@ public final class Environment {
|
||||
|
||||
String path = "";
|
||||
path += String.format("%s/bin", JAVA_HOME.getAbsolutePath());
|
||||
path += String.format(":%s/bin", GRADLE_HOME.getAbsolutePath());
|
||||
path += String.format(":%s/cmdline-tools/latest/bin", ANDROID_HOME.getAbsolutePath());
|
||||
path += String.format(":%s/cmake/bin", ANDROID_HOME.getAbsolutePath());
|
||||
path += String.format(":%s/bin", SYSROOT.getAbsolutePath());
|
||||
|
||||
Reference in New Issue
Block a user