diff --git a/src/cn/wjdiankong/main/Main.java b/src/cn/wjdiankong/main/Main.java index 6df0e5f..f1f3bbe 100644 --- a/src/cn/wjdiankong/main/Main.java +++ b/src/cn/wjdiankong/main/Main.java @@ -8,22 +8,33 @@ public class Main { - private final static String CMD_TXT = "[usage java -jar AXMLEditor.jar [-tag|-attr] [-i|-r|-m] [标签名|标签唯一ID|属性名|属性值] [输入文件|输出文件]"; + private final static String CMD_TXT = "[usage java -jar AXMLEditor2.jar [-tag|-attr] [-i|-r|-m] [鏍囩鍚峾鏍囩鍞竴ID|灞炴у悕|灞炴у糫 [杈撳叆鏂囦欢|杈撳嚭鏂囦欢]" + + "\n涓句緥璇存槑锛" + + "\n 1>鎻掑叆灞炴э細application鐨勬爣绛句腑鎻掑叆android:debuggable=\"true\"灞炴э紝璁╃▼搴忓浜庡彲璋冨紡鐘舵" + + "\n java -jar AXMLEditor2.jar -attr -i application package debuggable true AndroidManifest.xml AndroidManifest_out.xml" + + "\n 2>鍒犻櫎灞炴э細application鏍囩涓垹闄llowBackup灞炴э紝杩欐牱姝pp灏卞彲浠ヨ繘琛屾矙鐩掓暟鎹浠" + + "\n java -jar AXMLEditor2.jar -attr -r application allowBackup AndroidManifest.xml AndroidManifest_out.xml" + + "\n 3>鏇存敼灞炴э細application鐨勬爣绛句腑淇敼android:debuggable=\"true\"灞炴э紝璁╃▼搴忓浜庡彲璋冨紡鐘舵" + + "\n java -jar AXMLEditor2.jar -attr -m application package debuggable true AndroidManifest.xml AndroidManifest_out.xml" + + "\n 4>鎻掑叆鏍囩锛氬洜涓烘彃鍏ユ爣绛炬椂涓涓爣绛惧唴瀹规瘮杈冨锛屾墍浠ュ懡浠ゆ柟寮忎笉鏂逛究锛岃屾槸杈撳叆涓涓渶瑕佹彃鍏ユ爣绛惧唴瀹圭殑xml鏂囦欢鍗冲彲銆" + + "\n java -jar AXMLEditor2.jar -tag -i [insert.xml] AndroidManifest.xml AndroidManifest_out.xml" + + "\n 5>鍒犻櫎鏍囩锛氬垹闄ndroid:name=\"cn.wjdiankong.demo.MainActivity\"鐨勬爣绛惧唴瀹" + + "\n java -jar AXMLEditor2.jar -tag -r activity cn.wjdiankong.demo.MainActivity AndroidManifest.xml AndroidManifest_out.xml"; public static void main(String[] args){ /** - * 命令格式: - * -i 添加动作 - * -r 删除动作 - * -m 更新动作 - * -attr 属性 - * -tag 标签 - * 属性操作直接输入参数即可,标签操作需要输入信息 + * 鍛戒护鏍煎紡锛 + * -i 娣诲姞鍔ㄤ綔 + * -r 鍒犻櫎鍔ㄤ綔 + * -m 鏇存柊鍔ㄤ綔 + * -attr 灞炴 + * -tag 鏍囩 + * 灞炴ф搷浣滅洿鎺ヨ緭鍏ュ弬鏁板嵆鍙紝鏍囩鎿嶄綔闇瑕佽緭鍏ヤ俊鎭 */ if(args.length < 3){ - System.out.println("参数有误..."); + System.out.println("鍙傛暟鏈夎..."); System.out.println(CMD_TXT); return; } @@ -33,11 +44,11 @@ public static void main(String[] args){ File inputFile = new File(inputfile); File outputFile = new File(outputfile); if(!inputFile.exists()){ - System.out.println("输入文件不存在..."); + System.out.println("杈撳叆鏂囦欢涓嶅瓨鍦..."); return; } - //读文件 + //璇绘枃浠 FileInputStream fis = null; ByteArrayOutputStream bos = null; try{ @@ -61,7 +72,7 @@ public static void main(String[] args){ doCommand(args); - //写文件 + //鍐欐枃浠 if(!outputFile.exists()){ outputFile.delete(); } @@ -84,114 +95,117 @@ public static void main(String[] args){ } public static void testDemo(){ - //删除一个tag,删除tag时必须指定tag名称和name值,这样才能唯一确定一个tag信息 + //鍒犻櫎涓涓猼ag锛屽垹闄ag鏃跺繀椤绘寚瀹歵ag鍚嶇О鍜宯ame鍊硷紝杩欐牱鎵嶈兘鍞竴纭畾涓涓猼ag淇℃伅 //XmlEditor.removeTag("uses-permission", "android.permission.INTERNET"); //XmlEditor.removeTag("activity", ".MainActivity"); - //删除属性,必须要指定属性对应的tag名称和name值,然后就是属性名称 + //鍒犻櫎灞炴э紝蹇呴』瑕佹寚瀹氬睘鎬у搴旂殑tag鍚嶇О鍜宯ame鍊硷紝鐒跺悗灏辨槸灞炴у悕绉 //XmlEditor.removeAttr("activity", ".MainActivity", "name"); //XmlEditor.removeAttr("uses-permission", "android.permission.INTERNET", "name"); - //添加标签,直接在xml中配置即可,需要注意的是配置信息:manifest下面的标签必须在application标签的后面 + //娣诲姞鏍囩锛岀洿鎺ュ湪xml涓厤缃嵆鍙紝闇瑕佹敞鎰忕殑鏄厤缃俊鎭細manifest涓嬮潰鐨勬爣绛惧繀椤诲湪application鏍囩鐨勫悗闈 //XmlEditor.addTag(); - //添加属性,必须指定标签内容 + //娣诲姞灞炴э紝蹇呴』鎸囧畾鏍囩鍐呭 //XmlEditor.addAttr("activity", ".MainActivity", "jiangwei", "fourbrother"); - //更改属性,这里直接采用先删除,再添加策略完成 + //鏇存敼灞炴э紝杩欓噷鐩存帴閲囩敤鍏堝垹闄わ紝鍐嶆坊鍔犵瓥鐣ュ畬鎴 //XmlEditor.modifyAttr("application", "package", "debuggable", "true"); } public static void doCommand(String[] args){ if("-tag".equals(args[0])){ if(args.length < 2){ - System.out.println("缺少参数..."); + System.out.println("缂哄皯鍙傛暟..."); System.out.println(CMD_TXT); return; } - //标签 + //鏍囩 if("-i".equals(args[1])){ if(args.length < 3){ - System.out.println("缺少参数..."); + System.out.println("缂哄皯鍙傛暟..."); System.out.println(CMD_TXT); return; } - //插入操作 + //鎻掑叆鎿嶄綔 String insertXml = args[2]; File file = new File(insertXml); if(!file.exists()){ - System.out.println("插入标签xml文件不存在..."); + System.out.println("鎻掑叆鏍囩xml鏂囦欢涓嶅瓨鍦..."); return; } XmlEditor.addTag(insertXml); - System.out.println("插入标签完成..."); + System.out.println("鎻掑叆鏍囩瀹屾垚..."); return; }else if("-r".equals(args[1])){ if(args.length < 4){ - System.out.println("缺少参数..."); + System.out.println("缂哄皯鍙傛暟..."); System.out.println(CMD_TXT); return; } - //删除操作 + //鍒犻櫎鎿嶄綔 String tag = args[2]; String tagName = args[3]; XmlEditor.removeTag(tag, tagName); - System.out.println("删除标签完成..."); + System.out.println("鍒犻櫎鏍囩瀹屾垚..."); return; }else{ - System.out.println("操作标签参数有误..."); + System.out.println("鎿嶄綔鏍囩鍙傛暟鏈夎..."); System.out.println(CMD_TXT); return; } }else if("-attr".equals(args[0])){ if(args.length < 2){ - System.out.println("缺少参数..."); + System.out.println("缂哄皯鍙傛暟..."); System.out.println(CMD_TXT); return; } - //属性 + //灞炴 if("-i".equals(args[1])){ if(args.length < 6){ - System.out.println("缺少参数..."); + System.out.println("缂哄皯鍙傛暟..."); System.out.println(CMD_TXT); return; } - //插入属性 + //鎻掑叆灞炴 String tag = args[2]; String tagName = args[3]; String attr = args[4]; String value = args[5]; - XmlEditor.addAttr(tag, tagName, attr, value); - System.out.println("插入属性完成..."); + int attrIndex = -1; + attrIndex = Integer.parseInt(args[6]); + System.out.println("鎻掑叆灞炴х殑涓嬫爣锛" + attrIndex); + XmlEditor.addAttr(tag, tagName, attr, value, attrIndex); + System.out.println("鎻掑叆灞炴у畬鎴..."); return; }else if("-r".equals(args[1])){ if(args.length < 5){ - System.out.println("缺少参数..."); + System.out.println("缂哄皯鍙傛暟..."); System.out.println(CMD_TXT); return; } - //删除属性 + //鍒犻櫎灞炴 String tag = args[2]; String tagName = args[3]; String attr = args[4]; XmlEditor.removeAttr(tag, tagName, attr); - System.out.println("删除属性完成..."); + System.out.println("鍒犻櫎灞炴у畬鎴..."); return; }else if("-m".equals(args[1])){ if(args.length < 6){ - System.out.println("缺少参数..."); + System.out.println("缂哄皯鍙傛暟..."); System.out.println(CMD_TXT); return; } - //修改属性 + //淇敼灞炴 String tag = args[2]; String tagName = args[3]; String attr = args[4]; String value = args[5]; XmlEditor.modifyAttr(tag, tagName, attr, value); - System.out.println("修改属性完成..."); + System.out.println("淇敼灞炴у畬鎴..."); }else{ - System.out.println("操作属性参数有误..."); + System.out.println("鎿嶄綔灞炴у弬鏁版湁璇..."); System.out.println(CMD_TXT); return; }