一.摘要
Android Studio如何重命名包名?为什么要保证目录存放代码文件的包名和Manifest.xml文件中的package=""属性值一致?重命名包名和重命名目录结构有啥区别?Android Studio能否像Eclipse一样一键重命名?在回答上面问题之前,我们先理清楚一下思路。
二.Eclipse如何重命名包?
使用Eclipse项目创建的时候,第一步需要确认“Application Name”,“Project Name”,“Package Name”三个名称,通常TeachCourse习惯Application Name和Project Name一致(默认情况下),然后更改包名,完了之后创建对应的项目。在Eclipse的workspace工作间,看到创建的“TeachCoursePro”项目,“cn.teachcourse.app”包名存放类文件,“Application Name”打开
目录结构——“假包名”
项目src文件夹下的包名“cn.teachcourse.app”钊林习惯称为目录结构,Eclipse项目结构展示的方式有三种:1.Package Explorer;2.Navigator;3.Project Explorer,快捷键Alt+Shift+W快速切换,这里切换到Navigator目录结构展示方式,这时会发现,包名“cn.teachcourse.app”就是一个目录结构。如果有多个目录结构时,比如:cn.teachcourse.view,cn.teachcourse.utils等,然后在当前类中引入对应的路径,比如在文件cn.teachcourse.app.MainActivity文件中引用cn.teachcourse.view.MyImageView,需要在MainActivity文件中导入对应的目录结构:cn.teachcourse.view,也是常说的“导包”,快捷键Ctrl+Shift+O
“真实”的包名
相对目录结构来说,更喜欢将AndroidManifest.xml标签
目录结构和“真实包名”的关系
目录结构通常和包名写成同一个名称,比如:cn.teachcourse.app,这样的一个好处不要区分那么清楚,manifest文件中可以指定类文件绝对路径或类文件相对路径,代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="cn.teachcourse.app"
- android:versionCode="1"
- android:versionName="1.0" >
- <application
- android:allowBackup="true"
- android:label="@string/app_name">
- <!--绝对路径-->
- <activity android:name="com.zhaolinit.app.MainActivity"/>
- <!--相对路径-->
- <activity android:name="MainActivity"/>
- <activity android:name=".MainActivity"/>
- </application>
- </manifest>
之所以解释那么清楚,目的想要说明如何快速重命名真实的包名,在实际开发项目中,可能需要在原有项目的基础上改变manifest标签中的package属性值,出现的问题:gen文件夹生成新的包名,项目引入原有包名的R文件,如果每个类文件手动重新导入新包名的R文件夹,工作量会很大,钊林IT就遇到这样的问题。解决的办法:一步解决,直接打开gen文件夹(不建议手动修改R),重构该文件夹下的真实包名;如果你的manifest引用类文件绝对路径,不需要更改目录结构——“假包名”,否则Alt+Shilf+R重构目录结构,到这里可能就明白了吧?Android Studio与之有什么不同?
三.Android Studio如何重命名包?
折腾了一下午,项目中使用微信开放平台部分功能,需要使用特定的包名,包名微信开放平台已注册。在Android Studio中,同样存在目录结构和真实包名,与Eclipse重命名包名不同的是:
1.Android Studio R位置不一样:app\build\generated\source\r\debug\包名\R.java
2.包名展示样式分为:Flatten Packages,Empty Middle Packages。第一种方式表示平铺式,第二种显示或隐藏中间包名
备注:如何中间包名?选中“Flatten Packages”后,“Empty Middle Packages”变成“Hide Empty Middle Packages”,目录结构如下图:
3.Alt+Shift+R快捷键重命名包名(Eclipse键盘布局),包名分为根节点和子节点,选中根节点后提示重命名当前目录或全部目录,选中子节点提示重命名最后一级名称,如下图:
总结:Android Studio目录结构和包名按照一级一级重命名:第一级,第二级,第三级......解决重命名包名或目录结构也就不是问题
重命名目录结构
目录结构切换到“Flatten Packages”和“Hide Empty Middle Packages”,Alt+Shift+R选中项中目录结构的根节点,输入根节点名称,比如:cn,点击“Refactor”,完成重命名第一级,接下来每一级都以同样的方式执行
重命名R包名
切换到上述目录结构视图,找到R文件存放路径:app\build\generated\source\r\debug\包名\R.java,同理Alt+shift+R快捷键重命名R包名的根节点,完成重命名第一级,接下来重命名之后的每一级,然后打开manifest标签,设置package完整的包名,最后重构项目完成R文件包名重命名。
备注:
1.manifest类文件采用绝对路径,只需要重命名R文件包名;否则重命名R文件包名后,还需要重命名目录结构
2.Android Studio重命名包名的方式按级重构,一级一级重命名
3.Android Studio R文件存放路径不一样,如果找不到,先Make Module"app"
4.Android Studio 支持创建新目录结构或包名,然后“Refactor——>Move”重构
你可能感兴趣的文章
转载请注明出处: https://www.teachcourse.cn/1903.html ,谢谢支持!