Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 54 additions & 40 deletions src/cn/wjdiankong/main/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -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标签中删除allowBackup属性,这样此app就可以进行沙盒数据备份" +
"\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>删除标签:删除android: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;
}
Expand All @@ -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{
Expand All @@ -61,7 +72,7 @@ public static void main(String[] args){

doCommand(args);

//д�ļ�
//写文件
if(!outputFile.exists()){
outputFile.delete();
}
Expand All @@ -84,114 +95,117 @@ public static void main(String[] args){
}

public static void testDemo(){
//ɾ��һ��tag��ɾ��tagʱ����ָ��tag���ƺ�nameֵ����������Ψһȷ��һ��tag��Ϣ
//删除一个tag,删除tag时必须指定tag名称和name值,这样才能唯一确定一个tag信息
//XmlEditor.removeTag("uses-permission", "android.permission.INTERNET");
//XmlEditor.removeTag("activity", ".MainActivity");

//ɾ�����ԣ�����Ҫָ�����Զ�Ӧ��tag���ƺ�nameֵ��Ȼ�������������
//删除属性,必须要指定属性对应的tag名称和name值,然后就是属性名称
//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;
}
Expand Down