对于android-studio–将下载的.apk导入AndroidStudio?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解androidstudioapk导出,并且为您提供关于And
对于android-studio – 将下载的.apk导入Android Studio?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解android studio apk导出,并且为您提供关于Android Emulator 是否包含 Android SDK 或 Android Studio?、Android studio 将Eclipse代码导入到AndroidStudio的两种方式、android studio修改配置文件夹(.android .gradle .AndroidStudio)位置、Android Studio导入Android 源码的宝贵知识。
本文目录一览:- android-studio – 将下载的.apk导入Android Studio?(android studio apk导出)
- Android Emulator 是否包含 Android SDK 或 Android Studio?
- Android studio 将Eclipse代码导入到AndroidStudio的两种方式
- android studio修改配置文件夹(.android .gradle .AndroidStudio)位置
- Android Studio导入Android 源码
android-studio – 将下载的.apk导入Android Studio?(android studio apk导出)
解决方法
第一个编译器的结果看起来最容易导入android studio.我将在几个小时内尝试这个,所以我可以随着时间的推移改进我的答案.
Android Emulator 是否包含 Android SDK 或 Android Studio?
来自Android Emulator release notes
Android 模拟器包含在 Android Studio 中。
25.3.0 之前的模拟器版本作为 Android SDK 工具。
为确保您拥有最新版本,请检查 SDK Manager 更新。
对于 25.3.0 之前的 Android Emulator 版本,请参阅 Android SDK 工具发行说明。
Android studio 将Eclipse代码导入到AndroidStudio的两种方式
前言
Android Studio到现在已经发展到2.1.1+的版本了,最近也在试着使用它,原因是多方面的,一个毕竟是未来的趋势,二则是github上越来越多的大牛开源项目都是基于Android Studio的,因此会使用Android Studio就成为一件必须的任务。
在具体下面的工作之前,有两个概念是与Eclipse不大相同的,即Project和Module。在Android Studio中,一个Project并不是Eclipse的project,倒是有点像workspace(或者说任务吧),而Module才是与Eclipse的project相似的。所以,一个Project中可以包含多个Module,多个Module在一起共同构成一个Project,每个Module可以是一个库,也可以是一个可运行的Module(对应可运行的apk)。
正题
说到使用AndroidStudio,除了新建的项目,我们都会面临的问题是原先Eclipse的代码该怎么导入到AndroidStudio中使用。
这方面相关的资料还比较少,自己摸索了一下,总结出这篇博客,希望能让开发者少走些弯路。 OK,进入正题。
Google为了让我们更加方便的使用AndroidStudio,提供了两种导入Eclipse代码的方式:一种兼容Eclipse,一种是全新的Android Gradle Project. 这里,我们先从兼容模式说起。 兼容模式 这种模式下,保证了Eclipse时代的代码目录结构,整体操作和使用和Eclipse也差不多。 最重要的,当你使用AndroidStudio时,你或者其他人也可以方便的使用Eclipse,互不干扰。
实现步骤
- 从Eclipse中导出Gradle build files 在Eclipse菜单中 File --> Export-->Generate Gradle build files
接下来会到达警告界面,这里会提示AndroidStudio可以直接导入ADT的工程,先过,后面有直接导入的讲解。
选中你的项目工程,包括主工程和库工程(Library)。
确认生成
2. 修改导出文件参数 导出后,由于adt很久没更新,需要手动改一些参数,才能保证正常使用。 为了保证能够讲解的更清晰,下面分情况讲解一下:
没有库工程,只有主工程 这种情况下你看到的目录是这样的
首先需要更改的是 build.gradle 文件 AndroidStudio 1.0 ~ 1.0.2 使用的都是 Android Gradle plugin 1.0.0,因此需要将图中红框内的 0.12.+ 改为 1.0.0
然后还需要更新Gradle版本,指定为所需要的2.2.1
含有库工程 其实改动方法和上面一样,只需要注意是改动整个项目的build.gradle和 /gradle/wrapper/gradle-wrapper.properties。 而不要尝试去主工程或者库工程里面找build.gradle
- 导入AndroidStudio 进入到AndroidStudio中,选择导入非AndroidStudio工程
找到需要导入的工程目录,可以看到图标和Eclipse创建的工程不一样。
点击OK,进入漫长的加载过程,之后就可以正常使用了。
已经创建过工程的打开AndroidStudio会直接进入以前的工程 这时候可以选择File-->Import Project, 选中后点击ok
兼容模式下的bug 使用IDE的打包:
在兼容模式只打主工程的,库工程没有加入到apk中,导致无法正常运行。 截止到1.0.2,AndroidStudio依然存在这个bug。 因为这个bug的存在,你在兼容模式可以使用AndroidStudio编程,打包时开启Eclipse。
OK,兼容模式介绍到这里。 我们开始介绍主角: Android Gradle Project。 这里必须说明的是Google更希望我们使用这种方式,如果没有什么团队的压力,还是使用这种吧。
android studio修改配置文件夹(.android .gradle .AndroidStudio)位置
Android studio安装之后一般默认在c:/user/userid(*****)/;(比如:c:/user/xiaohong/)其他软件在安装中要创建缓存文件夹,那么也会在这个目录创建,比如Notepad++等
这三个文件夹的作用:
.android 这个文件夹是Android SDK生成的AVD(Android Virtual Device Manager)即模拟器存放路径
.AndroidStudio 这个文件夹是Android Studio的配置文件夹,主要存放一些AndroidStudio设置和插件和项目的缓存信息
.gradle 这个文件夹是构建工具 Gradle的配置文件夹,也会存储一些项目的构建缓存信息
默认创建路径在C盘,比较占空间,现在来转移至D盘
android文件夹的修改
这个文件夹是由Android SDK配置模拟器生成的,也是最占空间的一个。
首先,需要添加一个系统的环境变量ANDROID_SDK_HOME,如下图:
创建模拟器后默认位置还是在C盘,复制到D盘,修改如下图:
AndroidStudio文件夹的修改
进入Android Studio的安装目录,进入bin文件夹,用文本编辑软件打开idea.properties,去掉以下两项的注释符号#,修改对应的路径为新路径即可。
gradle文件夹的修改
Android Studio导入Android 源码
作为Android平台开发者,需要阅读和编写Android平台源码,一个好的工具可以事半功倍。
本文介绍如何通过Android Studio 导入Android平台源码。
平台和软件信息
- Android Studio: 4.1.1
- Ubuntu 20.04
- Android 10.0 源码
- Android根目录:/home/tanfuhai/data/code/android/
一键生成Android.ipr文件
通过Android Studio打开工程需要生成一个Android.ipr文件,笔者封装了一个shell脚本命令,请按照如下方法下载脚本并执行即可:
- 下载脚本点击下载android_studio_ipr,解压缩,比如存放于:/home/tanfuhai/Downloads/
- 进入Android源码根目录,执行:
chmod a+x /home/tanfuhai/Downloads/generate_android_studio_ipr/studio_impl.sh
/home/tanfuhai/Downloads/generate_android_studio_ipr/studio_impl.sh
如上命令执行完成之后,会生成:
- android.iml 模块配置文件,可以配置模块的资源目录和过滤目录等。详细可以参考A module file (the .iml file)
- **android.ipr **工程相关的设置。详细可以参考 ipr
- android.iws 工作区的设置。
关于这几个文件的官方介绍:
-
- .iml and *.ipr files were project wide and Could go into source control
- *.iws manages workspace settings specific to a user so shouldn’t go into source control
- 打开Android Studio->File->Open 打开生成的android.ipr文件。
- 导入源码就完成了,等待AS Indexing完成即可。
技巧
如下内容详细分析脚本的原理以及高级用法,如果没有特殊需求,本文后续内容可以不用在关注。
过滤文件
google开发了一套工具来方便生成, AS可以识别的android.ipr文件。源码位于:
development/tools/idegen
如果将所有的文件都载入Android Studio,会导致indexing非常慢,读者可以根据自己的模块需求过滤掉不需要的文件和目录。
idegen
可以通过excluded-paths 文件来过滤不参与indexing的文件和目录。
详细介绍可以查看excluded-paths文件内部开头介绍,全部是正则表达式,一个表达式一行。摘取片段介绍如下:
^(?!frameworks|packages|libcore|vendor|out|wingos|external)
^frameworks/(?!base|native|support|ex|opt|webview|av|minikin)
- 第一句含义:不过滤frameworks、packages、libcore、vendor、out目录
- 第二句含义:不过滤frameworks/base等
读者有任何需要过滤的可以按照如上方法进行编写即可,由于笔者工作集中在framework和apps,所以默认有如下的配置文件,读者可以根据自己的需要进行定制。
^(.*/tests/.*)$
#exclude all jar
^(?!.*android-support-.*_intermediates/.*).*\.jar$
^(?!.*androidx.*_intermediates/.*).*\.jar$
^(?!frameworks|packages|libcore|vendor|out|wingos|external)
#ssl : apache-http|conscrypt|bouncycastle
^external/(?!apache-http|conscrypt|bouncycastle|jsr330|dagger2)
^frameworks/(?!base|native|support|ex|opt|webview|av|minikin)
^frameworks/base/(?!core|libs|services|packages|policy|media|telephony|graphics|cmds|telecomm|keystore|tools)
^frameworks/base/packages/(?!SettingsProvider|systemUI|Keyguard|)
# package
^packages/(?!screensavers|WingUI|apps|providers|services)
^packages/apps/(?!Settings|SamSungCamera2|Launcher3)
#####for android 5.1
#^packages/apps/Email/(?!.*)
^packages/experimental
^packages/inputmethods
^packages/wallpapers
^out/(?!target|soong)
^out/target/(?!common|product)
^out/soong/(?!.intermediates)
^out/soong/.intermediates/(?!frameworks)
^out/soong/.intermediates/frameworks/(?!base)
^out/soong/.intermediates/frameworks/base/(?!core|framework|packages)
^out/soong/.intermediates/frameworks/base/framework/(?!android_common)
# android o add gen
^out/target/common/(?!obj|R|gen)
^out/target/common/obj/(?!JAVA_LIBRARIES|APPS)
^out/target/common/obj/APPS/(?!Email_intermediates|framework-res_intermediates|systemUI_intermediates|wos-framework-res_intermediates)
^out/target/common/obj/JAVA_LIBRARIES/(?!framework_intermediates.*|framework2_intermediates|framework-base_intermediates|com.android.emailcommon_intermediates|mediatek-common_intermediates|uiautomator_intermediates|telephony-ext_intermediates|android-support.*_intermediates.*)
#y360
^mediatek/packages
#g628
^mediatek/operator
######################mediateck###########################
######################mediateck###########################
^vendor/(?!mediatek|qcom|wingos)
^vendor/widevine
#^vendor/lenovo
^vendor/mediatek/proprietary/(?!frameworks|packages)
#^vendor/mediatek/proprietary/packages/app(?!frameworks|packages)
^vendor/mediatek/proprietary/packages/(?!apps)
^vendor/mediatek/proprietary/packages/apps/(?!BackupRestore|Mms|Calendar|SamSungCamera)
^vendor/qcom/(?!proprietary)
^vendor/qcom/proprietary/(?!qrdplus)
^vendor/qcom/proprietary/qrdplus/(?!ChinaMobile|Extension|DataMonitor)
^vendor/qcom/proprietary/qrdplus/ChinaMobile/apps/(?!Backup|BackupReceiver)
通过AS exclude文件和标记文件为source root
除了根据脚本生成相关文件之外,还可以可以通过Android Studio直接取消过滤和标记过滤。
比如想取消 packages/apps/SecureElement
的过滤
- 选中
SecureElement
- 右键-》mark directory as-》cancel exclusion
- 点击src目录-》右键-》mark directory as-》source root
- 经过如上步骤,SecureElement就可以进行代码跳转以及文件搜索导航了。

生成android.ipr文件的详细步骤。
- 将excluded-paths文件拷贝到Android源码根目录,比如:
/home/tanfuhai/data/code/android/
source build/envsetup.sh
mmma development/tools/idegen/
会生成idegen.jar,google默认的jar不会过滤掉不需要的文件和目录,所以笔者更改了一下源码,生成了一个自己的jar。- 执行
development/tools/idegen/idegen.sh
,会生成如下三个文件:- android.iml
- android.ipr 用Android Studio打开这个文件。
- android.iws
- 打开Android Studio->File->Open 打开生成的android.ipr文件。
关于android-studio – 将下载的.apk导入Android Studio?和android studio apk导出的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Android Emulator 是否包含 Android SDK 或 Android Studio?、Android studio 将Eclipse代码导入到AndroidStudio的两种方式、android studio修改配置文件夹(.android .gradle .AndroidStudio)位置、Android Studio导入Android 源码等相关知识的信息别忘了在本站进行查找喔。
本文标签: