这几天公司让整一套自己的Android开发模版,于是到网上找相关的资料,看完后发现做一个简单的Android模版还是好弄一点(不过要了解一点freemarker),按教程试了下做了几个简单的Activity模版(当然没有那么复杂,只是简单的试验),后来看到在new 一个Android新工程的时候发现,默认的包名是com.example,如图下图所示:

Android 新建Android应用修改默认包名com.example_第1张图片
能不能把默认的包名改成我们想要的呢,答案是肯定的。于是乎我在Android的模版里面去找相关的com.example字样,最后在AndroidLib中找到了,但显然不是想要的,继续在网上查资料。发现有人写了博客,而且修改成功了,但是com.example字样的不在我们的sdk包中,而是在ADT插件的jar包中,于是下载了相关的工具(jd-gui)进行反编译,并且在他人的博文中发现了com.example字样的路径,只可惜在这里是不能修改啊,这个博客里面也没有说道怎么整,于是功亏一篑。(我这里是修改成功)
Android 新建Android应用修改默认包名com.example_第2张图片
直接将要修改的文件NewProjectPage.class文件反编译后的java文件在dos中编译,当然这是通不过的,因为这个文件还依赖了其他的文件,其他文件还会依赖另一些文件,总之这样是搞不定的。实在不行直接将所有的jar包反编译,然后建立一个java工程,将src文件全部复制进来。发现这货也依赖了很多的包,从eclipse和sdk中拷贝了很多的jar文件,结果总会报错。后来找了另一个工具JClassLib,安装完成后打开,将我们要修改的NewProjectPage.class托出来,放到某一目录下通过JClassLib工具打开该文件,如图: Android 新建Android应用修改默认包名com.example_第3张图片
因为我们要修改的内容是字符串,肯定是在字符串常量池中的,一个个的找,找到第18行发现我们要修改的内容了 Android 新建Android应用修改默认包名com.example_第4张图片
然后在eclipse中建立一个java工程,并复制一下内容:
 String filePath = "f:\\NewProjectPage.class";     
        FileInputStream fis = new FileInputStream(filePath);     
             
        DataInput di = new DataInputStream(fis);     
        ClassFile cf = new ClassFile();     
        cf.read(di);     
        CPInfo[] infos = cf.getConstantPool();     
             
        int count = infos.length;     
        for (int i = 0; i < count; i++) {     
            if (infos[i] != null) {     
                System.out.print(i);     
                System.out.print(" = ");     
                System.out.print(infos[i].getVerbose());     
                System.out.print(" = ");     
                System.out.println(infos[i].getTagVerbose());     
                if(i == 18){     
                    ConstantUtf8Info uInfo = (ConstantUtf8Info)infos[i];     
                    uInfo.setBytes("com.cqt.".getBytes());     
                    infos[i]=uInfo;     
                }     
            }     
        }     
        cf.setConstantPool(infos);     
        fis.close();     
        File f = new File(filePath);     
        ClassFileWriter.writeToFile(f, cf);    
我这里是将com.example替换成了com.cqt。编译完成后把NewProjectPage.class再放回到adt插件的jar中,重启eclipse即可达到我们想要的效果。




更多相关文章

  1. 关于Android的反编译apk文件
  2. Android 内嵌WebView之选择文件上传及扩展
  3. android运行时ART加载OAT文件解析
  4. 如何检测android上的多媒体文件属于音频、视频还是图片?
  5. Android中的文件读写操作
  6. Android手机软件汉化教程---第三课 xml文件汉化

随机推荐

  1. android 源码下载、编译和测试
  2. Android PKMS深入分析安装应用
  3. Android初级到高级指南(精华版)
  4. Android中使用ListView绘制自定义表格(2)
  5. android mapview 学习总结
  6. Android(安卓)studio 3.4中gradle版本5.1
  7. Android消息机制(Handler)详述
  8. Android捕获Home按键
  9. XUtils-Android(安卓)最火的快速开发框架
  10. Android事件的分发、拦截和执行