位置:主页 > 互联网技术 >

把安卓源码中的system app独立出来,像开发普通app那样开发,安卓app

作者:AG集&#时间:2019-02-01

把安卓源码中的system app独立出来,像开发普通app那样开发,安卓app
      个人建议首先按照android源代码的ide/eclipse中的格式化xml和import导入到你编译的eclipse中,如果你编译的android源代码是2.3以上的版本的,建议用JDK6以上,提醒各位的是new androidProject不是Java project.
     此时你导入想DeskClock、Camera等没有调用到hide标签的项目时,这些项目都不会报错,你可以直接进行相应的修改或研究,呵呵,如果相应直接在eclipse或手机上运行的话,可能会提示你数字签名不正确,这个你自己改下整个项目名重写个数字签名即可,还有更狠的就是不管是手机还是模拟器你直击拿到root权限后,把原来的app删除掉,然后再运行你编译的源代码。如果涉及到hide标签怎么办咧,例如setting、Launcher2等项目,请看下面如何操作:

下面以Launcher2为例,详细解说一下:

1.将Launcher2项目导入eclipse中。
这时候Launcher2工程已经导入到eclipse中了,不过这时候会有158个错误(呵呵,编译2.3.3的是有这么多,反正其他版本也应该是有100多个,差不了多少).


2.添加Launcher2使用的包文件。

由于在Android源码中,很多方法、成员、类、包都被打上@hide标签,这些成员在SDK中没有公开,以至于在编译Launcher源码时最常遇到的类android.view.View的成员mScrollX无法访问。因此首先需要下载Android的代码并且编译好,因为要用到一些编译完成的class.jar文件

这里我们用到的有:(生成的包的路径为out/target/common/obj/JAVA_LIBRARIES)
1)framework_intermediates/classes.jar :这个主要是android的框架类
2)android-common_intermediates/classes.jar :这个包含com.android.common.Search这个类
3)core_intermediates/classes.jar :这个包包含dalvik.system.VMRuntime这个类
这些都是需要导入到工程里面的包,这个可以通过配置工程的Build Path来加入,
右键工程名称然后选择Build Path->Configure Build Path...->Libraries->Add Library->User Library->User Libraries...->New...
然后将上面3个依赖的包一个个的加入进来,分别命名为android_framework,android_common,android_core.
将3个包加入进来后,然后还需要将它们放到android2.3.3这个包的前面,可以在Build Path配置中选择Order and Export
这时候就会发现Launcher2工程以及没有错误了,也可以编译了。



3.修改Launcher2包名称,在模拟器上运行更改后的Launcher2.

改掉原始包的名字,切记使用eclipse的重命名机制(在包名上按F2可修改),不仅是类的引用,还有很多xml文件内部的引用(如import com.android.launcher3.R;),只要重命名不错,这些都可以一次性搞定的。

 

New name填写你自己的包名,把下面四项全部勾选。点击“Preview”

特别注意:你的项目最好不要放在中文路径下,不然rename时会出错,我就是开始放在中文路径下出错弄了很久才发现错误!



4.AndroidManifest.xml文件里面,找到这句话删除掉。(android:sharedUserId="android.uid.shared")

这样就大功告成了,我是用2.3的launcher来做实验的,结果没问题,运行成功





初学Android开发一个完整的详细的Android小程序源码参考

媒体播放器源码Audio.java
package org.example.audio;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;

public class Audio extAAAs Activity {
private MediaPlayer up, down, left, right, enter;
private MediaPlayer a, s, d, f;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// Native rate is 44.1kHz 16 bit stereo, but
// to save space we just use MPEG-3 22kHz mono
up = MediaPlayer.create(this, R.raw.up);
down = MediaPlayer.create(this, R.raw.down);
left = MediaPlayer.create(this, R.raw.left);
right = MediaPlayer.create(this, R.raw.right);
enter = MediaPlayer.create(this, R.raw.enter);
a = MediaPlayer.create(this, R.raw.a);
s = MediaPlayer.create(this, R.raw.s);
d = MediaPlayer.create(this, R.raw.d);
f = MediaPlayer.create(this, R.raw.f);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
MediaPlayer mp;
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
mp = up;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
mp = down;
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
mp = left;
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
mp = right;
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
mp = enter......余下全文>>
 
安卓 怎把程序放进SYSTEM/APP后有效

楼主你好!

打开RE管理器把apk文件复制粘帖到/system目录下、改权限使其与system/app文件夹下的apk文件的权限一样,然后再移动到pp文件夹,重启你的手机即可。

希望我的回答对你有用,望采纳为满意答案。
(*^__^*)
 

http://www.bkjia.com/Androidjc/868048.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/868048.htmlTechArticle把安卓源码中的system app独立出来,像开发普通app那样开发,安卓app 个人建议首先按照android源代码的ide/eclipse中的式化xml和import导入到你编...

本文源自: 凯发娱乐

互联网技术

联系我们