Android从现有的项目创建一个皮应用

Android从现有的项目创建一个皮应用

0x01 Copy一个新项目

  1. clean原项目,然后直接Copy原项目所有文件,等待完成
  2. 根据新项目重命名新文件夹名称
  3. 删除原项目的 .idea .git .gitlab 等文件夹,.gradle 可以不删
  4. 用编辑器打开 settings.gradle,修改项目名称 rootProject.name = "xxx"

0x02 重命名项目包名

这一步是要将包名从 com.sample1.android 重命名为 com.sample2.android

  1. 用AndroidStudio打开新项目,去掉 Compat Middle Packages 前面的勾
  2. 选择项目的 sample1 包名,Shift + F6重命名
  3. 一定选择 Rename Package
  4. 等待完成,项目大时间就比较长
  5. 修改 .aidl 文件的包名路径和import的路径
  6. 修改根目录下的 build.gradleapplicationId "com.sample2.android",并 sync

ps: 不清楚为啥Kotlin的扩展函数还需要重新手动导入

0x03 推到代码库

到上面这一步,不出意外的话已经可以编译成功并且跑起来了。编译成功之后可以先推送本地项目到代码库。

远程代码库新建项目,获取新项目git地址,然后执行下面操作。

1
2
3
4
5
6
$ cd existing_folder
$ git init
$ git remote add origin git://github.com/schacon/grit.git
$ git add .
$ git commit
$ git push -u origin master

0x04 后续

下面就是修改名称,URL,替换功能啥的。

  • Logo、名称、资源文件替换
  • H5协议替换
  • 域名修改
  • 第三方账号切换

0x05 审核相关

现在应用市场对新应用的审核非常严格。为了过审,可能需要做很多相关的工作

  • 混淆,或者改文件名
  • 资源混淆,或者资源改名
  • 增加新功能
  • 修改UI界面样式
  • 做审核版功能

0x06 问题

0x0601 如果Shift + F6重命名时没有Rename Package选项

如果Shift + F6重命名时没有Rename Package选项, 并且出现了以下提示,
Package 'example' contains directories in libraries which cannot be renamed. Do you want to rename current directory or all directories in project?
这是因为依赖包中也存在example这个包名,导致无法直接重命名包名。解决的方案分两种:

方案1. 暂时先移除包含example包名的依赖包,等重命名之后重新添加到项目中
方案2. 只能新建package,然后将要rename的包拖动到新的package中,或者F6移动

PS:因为无法重命名,刚刚经历了手动移动十几个module的package包路径的痛苦历程。

作者

Dench

发布于

2022-09-08

更新于

2022-09-08

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×