Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA。
Android Studio 提供的功能:
1、基于Gradle的构建支持。
2、Android 专属的重构和快速修复。
3、提示工具以捕获性能、可用性、版本兼容性等问题。
4、支持ProGuard 和应用签名。
5、基于模板的向导来生成常用的 Android 应用设计和组件。
6、功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览。
扩展资料:
Android Studio 提供自动构建、依赖项管理和可自定义的构建配置功能。可以将项目配置为包含本地库和托管库,定义包含不同代码和资源的构建变体,并应用不同的代码收缩和应用签名配置。
Android Studio 集成有诸多版本控制工具,例如 GitHub 和 Subversion,让团队能够与项目和构建变更保持同步。利用开源 Gradle 构建系统,可以根据自己的环境量身定制构建,并在一台持续性集成服务器(如 Jenkins)上运行构建。
Android Studio 提供了统一的环境,可在其中开发适用于 Android 手机、平板电脑、Android Wear、Android TV 以及 Android Auto 的应用。可以利用结构化代码模块将项目细分成可独立构建、测试和调试的若干功能单元。
参考资料来源:
百度百科——Android Studio
Android官网——Android官网
安装完毕Android Studio后第一步先要做的是对Android SDK进行设置。第一次打开Android Studio会出现如下页面:点击Configure,进入配置选择页面,选择SDK Manager
进入SDK Manager以后可以看到如下界面
Android SDK Location的存储位置可以自行定义,后期下载的Android会下载在设定的目录中。
SDK Platfroms 和 SDK Tools中为已安装及待安装的内容,建议全部勾选上进行安装。
本来按照上述 *** 作完成就可以了,但是由于目前Google在国内无法访问,所以需要通过镜像方式去下载我们的SDK。
点击 Launch Standalone SDK Manger 进入如下页面。
点击Tools->Options,到达如下页面即可添加镜像地址。
Android SDK在线更新镜像服务器
中国科学院开源协会镜像站地址:
>我在学习的过程中,亲历的这件事:项目组要做一个复杂的工程,分为sdk工程和demo工程,里面有java和jni层
而so和aar是sdk工程中生成的,拷贝到demo工程中编译成最终apk。
java层的调试,是简单的。可以在运行的时候用sdk工程的android studio附加app,如果直接用demo附加,sdk中的源码有些并不好显现,只能通过工程目录jar文件来查看。
而so层的附加,默认情况下是不可行的,因为jni层调试是启动型调试,我们来看下android studio处理各种调试行为的过程:
java层调试:
adb push 1apk /data/local/tmp/1apk
am start -D -n comexampletest/MainActivity
android studio等待app状态正常
设置断点
执行remote connect,使用java调试协议附加
jni层调试:
adb push 1apk /data/local/tmp/1apk
am start -D -n comexampletest/MainActivity
android studio等待app状态正常
adb push lldb_server
/lldb_server 建立Lldb调试服务器
lldbfrontendexe 连接lldb调试服务器
向lldb_server发送附加调试命令
设置java/c层断点
执行remote connect,使用java调试协议附加
附加调试:
设置断点
执行remote connect,使用java调试协议附加
1在研究过程中发现jni层在编译时生成2个so,带符号的是obj/local目录下的so,apk中编译好的的so是可以不带符号的,此时用gdb调试,吧文件设置为带符号的so,即可调试。继续研究发现带符号的so和无符号的so,前面字节完全相同。
2android studio建立jni工程,需要自动安装lldb,修改gradle脚本,buildgradle
debug {
jniDebuggable true
}
3android studio附加按钮只是采用Run/Debug Configuration中的Remote Configuaration
从上述过程可见,附加并不能触发jni层调试步骤,而jni层调试步骤又是写死的,必须把前面加载apk部分去掉,于是对android-ndkjar做修改
最终实现了效果。其中一些重要的类:
IDevice:描述移动设备
Client:描述app包进程
AndroidNativeDebugProcess 控制jni调试,和lldb_server通信
AndroidNativeDeubgRunner 控制调试器部分
AndroidNativeRunConfiguration 配置Run/Debug Configuration中的Natvie-Debug选项,我在里面添加了用户app进程列表方便调试
AndroidNativeRunConfigurationEditor 配置界面控件
AndroidLLDBDebuggerContext jni层建立lldb调试器
AndroidLLDBDriver 实现基本调试功能
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)