/frameworks/base/core/java/android/os/IHelloService.aidl
[java] view plain copy
package android.os
interface IHelloService
{
String test_service(String input)
}
在/frameworks/base/Android.mk 把aidl文件加入到源码编译器中
[java] view plain copy
core/java/android/os/IHelloService.aidl \
2.编写服务类
/frameworks/base/services/java/com/android/server/HelloService.java
[java] view plain copy
package com.android.server
import android.os.IHelloService
import android.os.IBinder
import android.content.Context
import android.util.Log
public class HelloService extends IHelloService.Stub
{
private static final String TAG="HelloService"
@Override
public String test_service(String input){
Log.i(TAG,"eva HelloService HelloService,test_service()) method")
return input
}
public HelloService()
{
super()
Log.i(TAG,"eva HelloService Constructor method")
}
}
3.编写服务管理器
/frameworks/base/core/java/android/os/TestServiceManager/frameworks/base/core/java/android/os/HelloManager.java
[java] view plain copy
package android.os
import android.os.IHelloService
import android.content.Context
import android.os.RemoteException
import android.util.Log
public class HelloManager
{
//Basic Member
android.os.IHelloService mService
private static final String TAG="HelloManager"
//Constructor
public HelloManager(Context ctx,android.os.IHelloService service)
{
mService=service
Log.i(TAG,"eva HelloManager Constructor method")
}
public String test_service(String input){
try{
Log.i(TAG,"eva HelloManager Constructor mService.test_service")
return mService.test_service(input)
}catch(RemoteException e)
{
return e.getMessage()
}
}
}
4.注册服务
/frameworks/base/core/java/android/app/SystemServiceRegistry.java
[java] view plain copy
import android.os.IHelloService
import android.os.HelloManager
registerService("HELLO_SERVICE",HelloManager.class,
new CachedServiceFetcher<HelloManager>(){
@Override
public HelloManager createService(ContextImpl ctx)
{
IBinder b = ServiceManager.getService("HELLO_SERVICE")
Log.i(TAG,"eva SystemServiceRegistry registerService method")
return new HelloManager(ctx,IHelloService.Stub.asInterface(b))
}})
5.启动服务
/frameworks/base/services/java/com/android/server/SystemServer.java
[java] view plain copy
import com.android.server.HelloService
ServiceManager.addService("HELLO_SERVICE", new HelloService())
6.将服务加入到源码中,编译备份
/external/sepolicy/service.te
[java] view plain copy
type hello_service, system_api_service, system_server_service, service_manager_type
7.给服务权限
/external/sepolicy/service_contexts
[java] view plain copy
HELLO_SERVICE u:object_r:hello_service:s0
8.Demo
MainActivity.java
[java] view plain copy
package com.example.testservicedemo
import android.app.Activity
import android.os.Bundle
import android.view.View
import android.view.View.OnClickListener
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.os.HelloManager
public class MainActivity extends Activity {
private EditText writeEdit
private Button readBtn
private TextView showInfo
private HelloManager mTestServiceManager
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
writeEdit = (EditText)findViewById(R.id.input)
readBtn = (Button)findViewById(R.id.read)
showInfo = (TextView)findViewById(R.id.showinfo)
mTestServiceManager = (HelloManager)getSystemService("HELLO_SERVICE")
readBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String inputString = writeEdit.getText().toString()
String result = mTestServiceManager.test_service(inputString)
showInfo.setText(result)
}
})
}
}
您可以通过“解决方案资源管理器”向源代码管理添加项目和解决方案。此添加 *** 作将本地文件系统位置中的新文件和文件夹添加到 Team Foundation 源代码管理 服务器。向源代码管理添加解决方案或项目在“工具”菜单中单击“选项”。在“选项”对话框中选择“源代码管理”。从“当前源代码管理插件”列表中选择“Visual Studio Team Foundation Server”。 在“解决方案资源管理器”中,右击解决方案,然后选择“将解决方案添加到源代码管理”。在“将解决方案添加到源代码管理”对话框(如果您已经打开了工作区,将看不到此对话框 - 系统会自动添加该解决方案,并且不会要求您提供文件夹)中,定位到“团队项目位置”下要添加项目或解决方案的位置,然后接受默认值,或者单击“新建文件夹”并在“键入解决方案文件夹的名称”文本框中输入所需的文件夹名或更改解决方案文件夹的名称。注意您可以选择单击“高级”,然后为解决方案选择替换映射。有关更多信息,请参见如何:为解决方案选择替换映射。单击“确定”。一旦通过执行签入提交了添加 *** 作,解决方案即添加到源代码管理服务器。有关更多信息,请参见向源代码管理服务器提交更改。注意也可以从命令行或 Visual Studio 菜单添加解决方案和项目;但是,以这两种方式添加项目和解决方案并不会绑定它们。该绑定负责提供源代码管理功能,包括在解决方案资源管理器中指示状态的各种源代码管理图标。有关更多信息,请参见如何:绑定和取消绑定项目和解决方案、Add 命令 和如何:将非项目或非解决方案文件/文件夹添加到源代码管理。安全若要执行这些过程,您必须将“签出”权限设置为“允许”。如何在eclipse导入JAVA源码并启动WEB服务eclipse打开并运行一个已经写好的java文件步骤如下:1、新建一个java工程项目:右键Eclipse的PackageExplorer空白部分,点击New,再点击JavaProject,输入工程名,点击finish;
2、在新建的工程里新建一个类:右键工程,点击New,再点击Class,输入类名,点击finish;3、把写好的java文件的代码复制到新建的类中;4、右键新建的类文件,点击RunAs,再点击JavaApplication即可运行Java文件。需要注意的是:java文件要成功运行,前提是要有主方法(main)的存在,没有主方法没办法运行java程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)