Android字符串动态加载
来源:互联网 发布:宜春学院网络教育平台 编辑:程序博客网 时间:2024/06/11 17:27
package com.su.shrinkResourceimport org.gradle.api.Projectimport java.nio.file.Filesimport java.nio.file.Paths/** * 建立一个文件夹 * 文件夹模式如下: * /shrink/../国家/ 语言和默认语言 * */public class ShrinkResource { String mVariantResourcePath; ArrayList<String> mShrinkResources; String mApptPath; String mCompileVersion; public String mProjectPath; public ShrinkResource(String variantResourcePath, ArrayList<String> shrinkResources, String compileVersion) { mVariantResourcePath = variantResourcePath; mShrinkResources = shrinkResources; this.mCompileVersion = compileVersion; } public ShrinkResource init(Project project) { if (project == null) { println("project is null"); return null; } String sdkDir = getSDKDir(project); mProjectPath = project.projectDir.getAbsolutePath(); println("============SDK Dir============" + sdkDir); this.mApptPath = new StringBuilder(sdkDir + File.separator + "build-tools" + File.separator + mCompileVersion + File.separator + "aapt").toString(); println("============AAPT Path==========" + mApptPath); return this; } def String getSDKDir(Project project) { if (project == null) { return null; } Properties props = new Properties(); props.load(new FileInputStream(project.rootProject.file("local.properties"))); String dir = props.get('sdk.dir'); return dir; } def boolean isEmpty(String str) { return null == str || str.length() == 0; } def void makeDir(String path) { if (isEmpty(path)) { return; } File file = new File(path); if (file != null) { file.mkdirs(); } } def void executeCommand(String cmd) { if (isEmpty(cmd)) { return; } try { def execute = cmd; execute.execute(); execute.waitFor(); } catch (Exception e) { e.printStackTrace(); } } def void makeResourceDirs() { if (mShrinkResources == null) { return; } for (String res : mShrinkResources) { String path = getResShrinkPath(res); makeDir(path) } } def void copyFiles(String fromPath, String targetPath) { if (isEmpty(fromPath) || isEmpty(targetPath)) { return; } try { Files.copy(Paths.get(fromPath), Paths.get(targetPath)); } catch (Exception ex) { ex.printStackTrace(); } } def String getResShrinkPath(String s) { return mProjectPath + File.separator + "shrinkResource" + File.separator + s + File.separator; } def void startShrinking() { // first make tmp Workpath makeTmpWorkSpace(); // 第二个拷贝文件 copyResToTmpWorkSpace(); // 准备 Android MainFest 以及 R 文件等 prepareAndroidMainFest(); prepareStringResources(); // startToCompile compileStringResources(); } def void compileStringResources() { println("======================COMPILE STRING RESOURCE=============================="); } def void prepareStringResources() { println("=====================PREPARE STRING RESOURCE==============================="); } def void prepareAndroidMainFest() { println("=====================PREPARE AndroidMainfest==============================="); } def void copyResToTmpWorkSpace() { println("=================START TO COPY FILES ==========================="); println("=================END TO COPY FILES ==========================="); } private final static String S_TMP_WORKSPACE = "tmp"; def void makeTmpWorkSpace() { String tmpWorkPath = getResShrinkPath(S_TMP_WORKSPACE); log("tmp path" + tmpWorkPath) deleteFiles(tmpWorkPath); try { makeDir(tmpWorkPath); } catch (Exception e) { e.printStackTrace(); } } def void log(Object object) { println(object); } def void deleteFiles(String path) { if (isEmpty(path)) { return; } try { new File(path).deleteDir(); } catch (IOException e) { e.printStackTrace(); } }}
0 0
- Android字符串动态加载
- Android动态加载(五)--动态加载框架
- Android 动态加载布局
- android 加载动态库
- Android 动态加载布局
- Android 动态加载布局
- android 动态加载Listview
- android ListView 动态加载
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android 动态加载布局
- Android动态加载TabHost
- Android 动态加载menu
- Android app动态加载
- Android 动态加载布局
- android 动态加载jar
- hadoop hive 笔记
- PHP操作MySQL数据库(3)
- linux常用命令3—文件处理
- java.lang.instrument 学习(一)
- 算法小结
- Android字符串动态加载
- Servlet,filter, struts,jsp之间的关系
- JAVA当中变量什么时候需要初始化
- 酷炫的交互动画和视觉效果
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 第三方登录----Oauth协议处理流程(QQ)
- QT---编译环境与开发流程
- JAVA设计模式之单例模式
- ubuntu安装程序缺少包依赖关系问题