在Eclipse下编译Android原生APK方法

目标:

1.      在eclipse环境下,编译Android原生的apk

2.      在eclipse环境下,做system系统签名的方法。(有很多,这里在windowsxp下做脚本处理)

 

前提:

1.      下载android源码;

2.      编译android源码;

以上两步网上有很多相关的资料,这里不做重复说明。

 

说明:

在eclipse环境下,要编译一个原生的apk是相当困难的。

但是还是有办法的,这里只做Java层的编译的说明,不做eclipse下C/C++的编译。

我们要去剖析Android源码编译APK的整个过程。

*.java文件 --》  *.class文件 --》 打包到 *.dex文件

所以还是生成了*.class文件的。Eclipse应用系统jar和第三方jar都是压缩 *.class文件。

 

 

目标1 搭建eclipse编译android原生APK环境

问题1:这些*.class文件在哪里呢?

 

编译源码过程中会生成很多的中间文件,在out\target\common\obj\JAVA_LIBRARIES 可以惊喜的发现很多android平台的Jar包,注意用压缩软件看看jar的详细内容,都是*.class

这里我们举出一个例子:

 


 

Ok,从图中你就可以看到相关的内容,注意要编译android源码后才能看到。这里不再啰嗦了。经过对比classes.jar classes-full-debug.jar classes-jarjar.jar 三个文件居然相同。

 

 

问题2:classes.jar classes-full-debug.jar classes-jarjar.jar三个文件在编译时的具体作用在这里不做说明。(有兴趣的朋友可以自己研究下)

 

 

问题3:怎么处理eclipse的环境,才能编译android原生的APK呢?

步骤如下:

1.      将android源码目录下out\target\common\obj\JAVA_LIBRARIES 的 classes.jar 或者

class-full-debug.jar拷贝到一个公共目录。


2.      将拷出的classes.jar 或者 class-full-debug.jar 修改为对应文件夹前缀的名字。

android.cts.dpi_intermediates   classes-full-debug.jar  --》android.cts.dpi.jar

省略掉_intermediates 后缀即可。(这个工作是个力气活,要多点耐心!!!!)

 

3.      在eclipse中导入Settings.apk源码.

目录  package/apps/Settings/****


问题来了,报了很多错红叉,不怕,接着来解决问题。

 

问题4:如何构建自己的eclipse的APK编译环境。

Settings工程目录上右键à Build Path à  Add Library

 

点击User Libraries 按钮

 

 

 

 

 

  增加自己的库名:android_system  并勾选  System library (added to the boot class path)

 

选中建立的android_system系统库,点击Add JARS按钮,找到第2步的文件夹,选中所有jar文件,打开,然后OK 确认。

 


Settings工程目录上右键 --》Build Path --》  Add Library  

勾选android_system  按Finish按钮即可。

 

问题5:出现了两个系统库怎么处理?

需要将原生的Android 4.3移除。

 

移除的方法

Settings工程目录上右键à Build Path --》 Configure Build Path..

选中Android 4.3 点击右侧的Remove按钮。Ok搞定。

 

 

 

遇到的问题处理:

 

这种情况下,快捷键Ctrl + 1   点击上图的ClearAll Lint markers  Ok

 

最后的结果:

 

 

目标2 eclipse下签名APK

 

步骤:

1.      建立sign目录

2.      拷贝签名文件 platform.pk8 platform.x509.pem

3.      签名signapk.jar

4.      创建signShell.bat文件

 

signShell.bat

脚本内容:

E:

cd E:\project\myeclipse\androidProject_hn_2013_1_07_ANT\Settings\bin

del Settings2.apk

java -jar ../sign/signapk.jar../sign/platform.x509.pem ../sign/platform.pk8 Settings.apk  Settings2.apk

adb uninstall com.android.settings

adb install Settings2.apk

pause

双击的时候 signshell.bat的 open With à System Editor

 

5.      AndroidManifest.xml 中 system权限

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="com.android.settings"

   coreApp="true"

   android:sharedUserId="android.uid.system">

所以顺序是运行Settings工程,在bin目录下生成了Settings.apk

点击signshell.bat 脚本,运行后生成签名后的Settings2.apk

 

Ok一切搞定。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是使用 Eclipse 编译Android 实验音乐播放器的步骤: 1. 创建新的 Android 项目 在 Eclipse 中,选择 File -> New -> Android Application Project。输入应用程序名称、项目名称、包名等信息。在此过程中,可以选择最低支持的 Android 版本和使用的 API 级别。 2. 添加音频文件 将音频文件添加到项目中。可以将音频文件放在 res/raw 目录下。 3. 编写播放器代码 创建一个播放器类,用于播放音频文件。可以使用 MediaPlayer 类来实现播放器功能。代码示例: ``` import android.media.MediaPlayer; public class MusicPlayer { private MediaPlayer mediaPlayer; public MusicPlayer() { mediaPlayer = new MediaPlayer(); } public void playMusic(int resId) { mediaPlayer = MediaPlayer.create(MainActivity.this, resId); mediaPlayer.start(); } public void stopMusic() { if (mediaPlayer != null) { mediaPlayer.release(); mediaPlayer = null; } } } ``` 4. 在布局文件中添加播放器控件 在布局文件中添加按钮,用于控制播放器的播放和停止操作。代码示例: ``` <Button android:id="@+id/play_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Play" /> <Button android:id="@+id/stop_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Stop" /> ``` 5. 在 Java 代码中添加按钮事件处理程序 在 Java 代码中添加按钮事件处理程序,用于响应用户点击操作。代码示例: ``` MusicPlayer musicPlayer = new MusicPlayer(); Button playButton = findViewById(R.id.play_button); playButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { musicPlayer.playMusic(R.raw.music); } }); Button stopButton = findViewById(R.id.stop_button); stopButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { musicPlayer.stopMusic(); } }); ``` 6. 编译和运行应用程序 在 Eclipse 中,选择 Run -> Run As -> Android Application。在模拟器或 Android 设备上运行应用程序。 以上就是使用 Eclipse 编译Android 实验音乐播放器的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值