网站建设资讯

NEWS

网站建设资讯

android应用代码,android 代码

学习android怎么调试android应用源代码

开发调试环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源码

站在用户的角度思考问题,与客户深入沟通,找到鹤城网站设计与鹤城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖鹤城地区。

由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA

一、修改Android Studio(以下简称AS)的内存配置

因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。

二、配置AS的JDK、SDK

在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件

并将其作为要使用的SDK的Java SDK。如下图

三、生成导入AS所需配置文件(*.ipr)

①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)

②检查out/host/linux-x86/framework/目录下是否有idegen.jar

如果idegen.jar不存在,执行:

mmm development/tools/idegen/

在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。

我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。

③执行

development/tools/idegen/idegen.sh

等待出现类似下面的结果:

Read excludes: 5ms

Traversed tree: 44078ms

这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件

Tips:

AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:

excludeFolder url="" /

excludeFolder url="" /

excludeFolder url="" /

这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.

④在AS中打开源码根目录下新生成的android.ipr

如果在导入时AS出现

则建议按照其给定的解决方法来解决(网址:),具体内容如下图:

四、解决源码中跳转错误问题

①为当前工程设置正确的SDK和JDK

②设置'Modules'的依赖

先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.

如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)

点击上图中'2'指向的'+'并选择上图'3'指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:

其它版本的代码在添加frameworks时可能会显示成:

没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.

如果还有代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中即可.

五、DEBUG源码

我们可以通过给刚导入的工程在'Modules'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码.

可以按照上图中'1'和'2'来添加Android Framework支持.

在代码中加断点,然后选择'Run'-'Attach debugger to Android process'或者直接点击下图所示的图标

在弹出的选择进程(Choose Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.

六、其它

代码中很多地方提示Call requires API Level x.... 出现这个问题是因为AS将我们的工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.

我们只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。

也可以考虑使用build.gradle来解决该问题。

怎样查看 Android APP 源代码

需要把反编译的apk存放到apktools同级文件夹目录下,然后运行要查看的安装包,具体操作如下:

1、首先把反编译的apk存放到apktools同级文件夹目录下,如下图所示。

2、按住shift+鼠标右键打开命令窗口,运行代码 apktool d yd.apk(安装包的名字)。

3、apk后缀名改成zip,解压双击打开xml格式文件如下图所示。

4、打开cmd命令窗口,如下图所示依次输入命令。

5、将classes.dex打包成jar包 需要用到dex2ja。

6、然后就可以查看需要的源代码,如下图所示。

怎样查看 Android APP源代码?

将apk文件拷贝至sdcard上。

命令顺序如下:

进入Android sdk文件夹/tools目录下

输入adb shell

输入su

输入cd data

输入cd app

这时就可以看到你安装的所有的apk文件。输入cp 空格 对应的apk 空格 /sdcard/

这样就将apk文件拷贝出来了。

将apk文件后缀直接变成rar格式,可以看到熟悉的目录结构了,

其中xml文件打开后都是二进制的,无法查看。

这时就用到了一个android4me的AXMLPrinter2工具。(请自行百度搜索)

输入以下命令,将xml文件解析出来

java -jar AXMLPrinter2.jar showtimes_list.xml

此命令是在命令行中查看此showtimes_list.xml

将showtimes_list.xml生成xml文件,则输入以下命令:

java -jar AXMLPrinter2.jar showtimes_list.xml h.xml

目前进行到这一步,只能看到xml文件的内容,其工程中的java源文件还是看不到,看目录结构下有一个classes.dex文件,我们需要将dex文件变为jar文件。

这里用到了另一个工具dex2jar。(自行搜索下载)

在Windows下解压之后的目录如下图所示:

在命令行中,进入到此目录下:

在Windows下,输入以下命令:

dex2jar.bat c:\classes.dex

运行完之后,在C盘会多一个classes.dex.dex2jar.jar文件,此文件就是我们需要的jar文件。

利用jd-gui,将jar文件反向工程为java代码。(请自行搜索下载)

它分为Windows、Linux、和max三个版本,这里我下载的是Windows版本的。

解压之后,双击运行exe文件,选择classes.dex.dex2jar.jar文件,相应的jar文件中的Java文件就被反向工程显示出来了!

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。 [1]  2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。

Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号, [1]  于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制,这是Android操作系统的品牌象徵。有时候,它们还会使用纯文字的Logo。


名称栏目:android应用代码,android 代码
分享URL:http://njwzjz.com/article/dsgppep.html