扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
将apk文件拷贝至sdcard上。
十年的防城港网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整防城港建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“防城港网站设计”,“防城港网站推广”以来,每个客户项目都认真落实执行。
命令顺序如下:
进入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。
MainActivity.java就是用来写Activity代码的
activit_main.xml是用来写布局文件的
建议你先查看android的视频教程
首先新建一个项目命名为Mp3Demo(这个看个人喜好),Activity命名为Mp3Demo。
1.接下来在Mp3Demo.java中输入以下代码:
package com.example.mp3demo;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Mp3Demo extends Activity
{ //声名变量
private Button start=null;
private Button pause=null;
private Button stop=null;
private TextView state=null;
private MediaPlayer mp3;
private Boolean flag=false; //设置标记,false表示正在播放
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_mp3_demo);
//取得各按钮组件
start=(Button) super.findViewById(R.id.start);
pause=(Button) super.findViewById(R.id.pause);
stop=(Button) super.findViewById(R.id.stop);
state=(TextView)super.findViewById(R.id.state);
//为每个按钮设置单击事件
start.setOnClickListener(new OnClickListenerStart());
pause.setOnClickListener(new OnClickListenerPause());
stop.setOnClickListener(new OnClickListenerStop());
mp3= new MediaPlayer(); //创建一个MediaPlayer对象
//在res下新建一个raw文件夹把一首歌放到此文件夹中并用英文命名
mp3 = MediaPlayer.create(Mp3Demo.this,R.raw.sky);
}
//各按钮单击事件的实现如下
//开始播放
private class OnClickListenerStart implements OnClickListener{
//implementsOnClickListener为实现OnClickListener接口
@Override
//重写onClic事件
public void onClick(View v)
{
//执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容
try
{
if (mp3!=null)
{
mp3.stop();
}
mp3.prepare(); //进入到准备状态
mp3.start(); //开始播放
state.setText("Playing"); //改变输出信息为“Playing”,下同
} catch (Exception e)
{
state.setText(e.toString());//以字符串的形式输出异常
e.printStackTrace(); //在控制台(control)上打印出异常
}
}
}
//暂停播放
private class OnClickListenerPause implements OnClickListener{
@Override
public void onClick(View v)
{
try
{
if (flag==false) //若flag为false,则表示此时播放器的状态为正在播放
{
mp3.pause();
flag=true;
state.setText("pause");
}
else if(flag==true){
mp3.start(); //开始播放
flag=false; //重新设置flag为false
state.setText("Playing");
}
} catch (Exception e)
{
state.setText(e.toString());
e.printStackTrace();
}
}
}
//停止播放
private class OnClickListenerStop implements OnClickListener{
@Override
public void onClick(View v)
{
try
{
if (mp3!=null)
{
mp3.stop();
state.setText("stop");
}
} catch (Exception e)
{
state.setText(e.toString());
e.printStackTrace();
}
}
}
//重写暂停状态事件
protected void onPause(){
try
{
mp3.release(); //释放音乐资源
} catch (Exception e)
{
state.setText(e.toString());
e.printStackTrace();
}
super.onPause();
}
}
2.按下来是定义布局文件,代码如下:
xmlns:tools=""
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" /
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="start"/
android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pause"/
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="stop"/
启动Eclipse,第一次启动软件时,会提示选择工作空间(WorkSpace),可在硬盘上新建一个文件夹作为工作空间,这个文件夹将会保存你所编写的所有的源代码。
如何新建一个简单的Java工程。
下图分别是填写工程名以及源码文件夹,一般情况是默认src作为根文件夹。
4
在工程中新建一个包。
值得注意的是包名和工程名一般都是小写开头,而Java类名则是大写开头。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流