这几天公司让整一套自己的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开源项目分享
  3. android之组件1
  4. android 环境搭建 windows 和linux 环境
  5. 自定义ListView中的分割线
  6. actionbar设置menu以及获取item实例
  7. Android学习笔记之mainfest文件中android
  8. 另一个更简单的Android应用程序全屏的方
  9. android类
  10. android 抽屉的一些小问题