AndroidÔ¶³Ì·þÎñ±àдºÍµ÷Óý̳Ì

µ¼Óï ¡¡¡¡ËµÃ÷¡¡¡¡ÍøÉϺ¹Å£³ä¶°µÄÎÄÕ¶¼ÊǽéÉÜAndroidÔ¶³Ì·þÎñµÄ£¬Ò»¸ö¸ö½«Binder»úÖÆ¡¢AIDL½²µÃÍ·Í·ÊǵÀ£¬È»¶øûÓм¸¸öÈËÄܹ»¸ø³öÇåÎúµÄ·¶Àý˵Ã÷ÈçºÎÓÃ×î¿ìµÄ·½·¨Ñ§»á±àдºÍµ÷ÓÃÒ»¸öAndroidÔ¶³Ì·þÎñ¡£ÈôÄã½ö½öÊÇÏëÈç

¡¡¡¡ËµÃ÷

¡¡¡¡ÍøÉϺ¹Å£³ä¶°µÄÎÄÕ¶¼ÊǽéÉÜAndroidÔ¶³Ì·þÎñµÄ£¬Ò»¸ö¸ö½«Binder»úÖÆ¡¢AIDL½²µÃÍ·Í·ÊǵÀ£¬È»¶øûÓм¸¸öÈËÄܹ»¸ø³öÇåÎúµÄ·¶Àý˵Ã÷ÈçºÎÓÃ×î¿ìµÄ·½·¨Ñ§»á±àдºÍµ÷ÓÃÒ»¸öAndroidÔ¶³Ì·þÎñ¡£ÈôÄã½ö½öÊÇÏëÈçºÎ±àд»òÕßµ÷ÓÃAndroidµÄÔ¶³Ì·þÎñ£¬¶øÀÁµÃÈ¥Àí½âBinder»úÖÆÊÇÈçºÎÔËÐеģ¬ÄÇô±¾ÆªÎÄÕÂÕýºÃÊʺÏÄã¡£±Ï¾¹ÏÖÔÚÈËÈ˶¼»á¿ª³µ£¬µ«Ã»Óм¸¸öÈËÃ÷°×·¢¶¯»úµ½µ×ÊÇÈçºÎÔË×÷µÄ¡£

¡¡¡¡Ô´´úÂë

¡¡¡¡´úÂë°üÔÚ´Ë£¬°üÀ¨Ò»¸ö·þÎñ¶ËºÍÒ»¸ö¿Í»§¶Ë£¬ÎÞÐèÏÂÔØ·Ö£º

¡¡¡¡http://download.csdn.net/detail/logicteamleader/9407694

¡¡¡¡Ô¤±¸ÖªÊ¶

¡¡¡¡¶ÁÕßÓ¦¸ÃÓлù±¾µÄjava֪ʶ£¬ºÍAndroid¼òµ¥appµÄ¿ª·¢¾­Ñé¡£

¡¡¡¡»·¾³

¡¡¡¡´úÂëÔËÐл·¾³£º

¡¡¡¡1.ADT2014°æ±¾;

¡¡¡¡2.android:minSdkVersion=”8”;android:targetSdkVersion=”20”

¡¡¡¡3.workspaceÖÐÒѾ­Éú³ÉÁËappcompatv7£¬ËüµÄ°æ±¾ÊÇandroid-22;

¡¡¡¡Ô¶³Ì·þÎñ¿ª·¢½Ì³Ì

¡¡¡¡ÔÚ¿ªÊ¼¿ª·¢Ö®Ç°£¬ÏÈŪÇå³þ¼¸¸ö¸ÅÄ

¡¡¡¡1. IPC:½ø³Ì¼äͨÐÅ£¬ÄãÖ»ÐèÒªÖªµÀAndroidÊÇÒÀÀµÕâ¸ö¶«Î÷À´½øÐÐÔ¶³Ì·þÎñµ÷ÓõľͿÉÒÔÁË¡£

¡¡¡¡2. Binder»úÖÆ£ºAndroid·¢Ã÷µÄÒ»ÖÖIPC»úÖÆ£¬¾Ý˵·Ç³£·Ç³£µÄºÃ£¬Äã¾Íµ±ËüÊǸöºÚºÐ×Ó£¬Í¨¹ýÕâ¸öºÚºÐ×ӾͿÉÒÔ½øÐÐÔ¶³Ì·þÎñµ÷ÓÃÁË£¬¶øÇÒAndroidÖеĺܶà»úÖƶ¼ÊÇͨ¹ýËüʵÏֵġ£

¡¡¡¡3. AIDLÓïÑÔ£ºÒ»ÖÖרÃÅÓÃÀ´Ð´Ô¶³Ì½Ó¿ÚµÄÓïÑÔ£¬¿´ËüµÄÃû×Ö¾ÍÖªµÀÁË£¬Android Interface Definition

¡¡¡¡Language¡£AIDLÓïÑÔ¿ÉÒÔ±»androidÌṩµÄ±àÒëÆ÷±àÒëΪJavaÔ´´úÂ룬Õâ¸öJavaÔ´´úÂ뽫»á±»·þÎñµÄºÍ¿Í»§¶ËʹÓã¬ÓÃÀ´¼ò»¯Ô¶³Ì·þÎñ¿ª·¢Á÷³Ì¡£Èç¹ûÄãµ±³õÍæ¹ýCORBA£¬ÄǾ͸üÄÜÃ÷°×ʲôÊÇIDLÓïÑÔÁË

¡¡¡¡4. IInterface½Ó¿Ú¡¢IBinder½Ó¿Ú¡¢IBinderÀàµÈµÈ£º¶¼ÊÇÓÃÀ´ÊµÏÖBinder»úÖƵĽӿںÍÀ࣬ÔÚ±¾½Ì³ÌÖУ¬Äã¾Íµ±ËüÃÇÊÇBinderºÚºÐ×ÓµÄÒ»²¿·Ö£¬²»ÐèÒªÁ˽⡣

¡¡¡¡ÔÙ˵һµã£¬ÆäʵAndroidÌṩµÄApiDemosÖоÍÓÐÒ»¸öÔ¶³Ì·þÎñµÄ±ê×¼·¶Àý£¬µ«ÊÇÆäÒ»ÊÇËüûÓн«·þÎñ¶ËºÍ¿Í»§¶Ë·Ö¿ªÐ´£¬Æä¶þÊÇÀý×ÓÖвôÔÓÁËÌ«¶àÆäËûµÄ¹¦ÄÜ£¬Òò´ËÀí½âÆðÀ´½ÏΪÀ§ÄÑ¡£Õâ¸öÀý×ÓÊÇcom.example.android.apis.app.RemoteService£¬ÓÐÐËȤµÄ¿ÉÒÔÔÚ¿´Íê±¾ÎĺóÔÙÈ¥ÏêϸÑо¿¡£

¡¡¡¡µÚÒ»²½£¬´´½¨Ò»¸öÆÕͨAndroidÓ¦ÓÃ

¡¡¡¡Ó¦ÓÃÃûΪWxbRemoteService£¬Õâ¸öÓ¦ÓÿÉÒÔɾµôÆäActivityÀ࣬µ«ÊÇΪÁ˼òµ¥£¬ÎÒÃǾͱ£ÁôËùÓÐ×Ô¶¯´´½¨µÄ´úÂë¡£

¡¡¡¡µÚ¶þ²½£¬±àдAIDL

¡¡¡¡AIDLÓïÑÔµÄÓï·¨ºÍJavaÆäʵºÜÏñ£¬ÄãÉõÖÁ¿ÉÒÔÏȱàдһ¸öJava½Ó¿Ú£¬È»ºóɾµôpublic¡¢protected¡¢privateÕâЩȨÏÞÏÞ¶¨´Ê¼´¿É¡£Àý×ÓÈçÏÂIWxbService.aidl£º

  1. package com.dumaisoft.wxbremoteservice; 
  2.  
  3. interface IWxbService { 
  4.  
  5. void setName(String name); 
  6.  
  7. String getName(); 
  8.  

¡¡¡¡×¢Ò⼸µã£º

¡¡¡¡1.½Ó¿ÚÃûºÍaidlÎļþÃûÏàͬ¡£

¡¡¡¡2.½Ó¿ÚºÍ·½·¨Ç°²»ÓüӷÃÎÊȨÏÞÐÞÊηûpublic,private,protectedµÈ,Ò²²»ÄÜÓÃfinal,static¡£

¡¡¡¡3.AidlĬÈÏÖ§³ÖµÄÀàÐÍ°ü»°java»ù±¾ÀàÐÍ(int¡¢long¡¢booleanµÈ)ºÍ(String¡¢List¡¢Map¡¢ CharSequence)£¬Ê¹ÓÃÕâЩÀàÐÍʱ²»ÐèÒªimportÉùÃ÷¡£¶ÔÓÚListºÍMapÖеÄÔªËØÀàÐͱØÐëÊÇAidlÖ§³ÖµÄÀàÐÍ¡£Èç¹ûʹÓÃ×Ô¶¨ÒåÀàÐÍ×÷ Ϊ²ÎÊý»ò·µ»ØÖµ£¬×Ô¶¨ÒåÀàÐͱØÐëʵÏÖParcelable½Ó¿Ú¡£

¡¡¡¡4.×Ô¶¨ÒåÀàÐͺÍAIDLÉú³ÉµÄÆäËü½Ó¿ÚÀàÐÍÔÚaidlÃèÊöÎļþÖУ¬Ó¦¸ÃÏÔʽimport£¬¼´±ãÔÚ¸ÃÀàºÍ¶¨ÒåµÄ°üÔÚͬһ¸ö°üÖС£

¡¡¡¡5.ÔÚaidlÎļþÖÐËùÓзÇJava»ù±¾ÀàÐͲÎÊý±ØÐë¼ÓÉÏin¡¢out¡¢inout±ê¼Ç£¬ÒÔÖ¸Ã÷²ÎÊýÊÇÊäÈë²ÎÊý¡¢Êä³ö²ÎÊý»¹ÊÇÊäÈëÊä³ö²ÎÊý¡£

¡¡¡¡6.JavaԭʼÀàÐÍĬÈϵıê¼ÇΪin,²»ÄÜΪÆäËü±ê¼Ç

¡¡¡¡IWxbService.aidlÎļþµÄλÖÃÊÇÔÚcom.dumaisoft.wxbremoteservice°üÖУ¬Ö»ÒªÓï·¨ÕýÈ·£¬Ôò»áÔÚADTµÄgenĿ¼ÏµÄcom.dumaisoft.wxbremoteservice°üÖÐÉú³ÉjavaÎļþIWxbService.java¡£

¡¡¡¡IWxbService.aidl¶¨ÒåÁËÒ»¸öÔ¶³Ì½Ó¿Ú£¬Ëü°üº¬Á½¸ö·½·¨getNameºÍsetName¡£

¡¡¡¡µÚÈý²½£¬±àд·þÎñÀà

¡¡¡¡Ìí¼ÓÒ»¸öWxbServiceÀ࣬Ëü¼Ì³ÐÁËServiceÀ࣬Դ´úÂëÈçÏ£º

¡¡¡¡

  1. package com.dumaisoft.wxbremoteservice; 
  2.  
  3. ¡¡¡¡import com.dumaisoft.wxbremoteservice.IWxbService.Stub; 
  4.  
  5. ¡¡¡¡import android.app.Service; 
  6.  
  7. ¡¡¡¡import android.content.Intent; 
  8.  
  9. ¡¡¡¡import android.os.IBinder; 
  10.  
  11. ¡¡¡¡import android.os.RemoteException; 
  12.  
  13. ¡¡¡¡public class WxbService extends Service { 
  14.  
  15. ¡¡¡¡private ServiceImpl serviceImpl; 
  16.  
  17. ¡¡¡¡//¼Ì³ÐÓÉIWxbService.aidlÉú³ÉµÄcom.dumaisoft.wxbremoteservice.IWxbService.StubÀà 
  18.  
  19. ¡¡¡¡class ServiceImpl extends Stub{ 
  20.  
  21. ¡¡¡¡private String _name; 
  22.  
  23. ¡¡¡¡@Override 
  24.  
  25. ¡¡¡¡public void setName(String name) throws RemoteException { 
  26.  
  27. ¡¡¡¡_name = name; 
  28.  
  29. ¡¡¡¡} 
  30.  
  31. ¡¡¡¡@Override 
  32.  
  33. ¡¡¡¡public String getName() throws RemoteException { 
  34.  
  35. ¡¡¡¡return _name; 
  36.  
  37. ¡¡¡¡} 
  38.  
  39. ¡¡¡¡} 
  40.  
  41. ¡¡¡¡//½«ServiceImpl×öÒ»¸ö¼òµ¥µÄµ¥Àýģʽ 
  42.  
  43. ¡¡¡¡private ServiceImpl getInstance(){ 
  44.  
  45. ¡¡¡¡if(serviceImpl == null){ 
  46.  
  47. ¡¡¡¡serviceImpl = new ServiceImpl(); 
  48.  
  49. ¡¡¡¡} 
  50.  
  51. ¡¡¡¡return serviceImpl; 
  52.  
  53. ¡¡¡¡} 
  54.  
  55. ¡¡¡¡@Override 
  56.  
  57. ¡¡¡¡public IBinder onBind(Intent intent) { 
  58.  
  59. ¡¡¡¡return getInstance(); 
  60.  
  61. ¡¡¡¡} 
  62.  
  63. ¡¡¡¡} 

¡¡¡¡Í¨¹ýÑо¿´úÂë¿ÉÖª£¬ºÍÆÕͨµÄ·þÎñÀàÏà±È£¬Ô¶³Ì·þÎñÀà×î´óµÄÇø±ð¾ÍÊÇËüÓµÓÐÒ»¸öÃûΪServiceImplµÄ³ÉÔ±±äÁ¿£¬Õâ¸ö³ÉÔ±±äÁ¿¼Ì³ÐÁËStubÀ࣬²¢ÊµÏÖÁËStubÀàµÄgetNameºÍsetName·½·¨¡£Õâ¸öStubÀà¾ÍÊÇÓÉ IWxbService.aidlÉú³ÉµÄIWxbService.javaÌṩµÄ¡£ÎÒÃDz»ÓÃÑо¿ÆäÔ´´úÂ룬ֻÓÃÖªµÀËüµÄÓ÷¨£º

¡¡¡¡µÚÒ»£ºÈÃServiceµÄÒ»¸ö³ÉÔ±±äÁ¿¼Ì³ÐStub£¬²¢ÊµÏÖÔ¶³Ì½Ó¿ÚµÄ·½·¨;

¡¡¡¡µÚ¶þ£ºÔÚServiceµÄonBind·½·¨Öзµ»ØÒ»¸öStub×ÓÀàµÄʵÀý¡£

¡¡¡¡µÚËIJ½£¬ÅäÖÃAndroidManifest.xml

¡¡¡¡¼ÓÉÏÈçÏ´úÂ룺

  1. <service android:name="WxbService"
  2.             <intent-filter> 
  3.                 <action android:name="com.dumaisoft.wxbremoteservice.REMOTE_SREVICE"/> 
  4.             </intent-filter> 
  5.         </service> 

¡¡¡¡×¢ÒâactionµÄnameΪ”com.dumaisoft.wxbremoteservice.REMOTE_SREVICE”£¬Õâ¸öÓÉ¿ª·¢Õß±£Ö¤²»ÖØÃû¼´¿É¡£

¡¡¡¡µÚÎå²½£¬°²×°appµ½ÊÖ»úÉÏ

¡¡¡¡°²×°Íê³Éºó£¬ÄãµÄÔ¶³Ì·þÎñ¾Í±»×¢²áµ½BinderºÚºÐ×ÓÖÐÁË£¬Èκοͻ§¶ËÖ»ÒªÖªµÀÄãµÄÔ¶³Ì·þÎñactionÃû³ÆºÍ½Ó¿Ú£¬¾Í¿ÉÒÔbind·þÎñ£¬²¢µ÷Óýӿڡ£

¡¡¡¡Ô¶³Ì·þÎñµ÷Óý̳Ì

¡¡¡¡µÚÒ»²½£¬´´½¨Ò»¸öandroidÓ¦ÓÃ

¡¡¡¡Ó¦ÓÃÃûΪWxbRemoteServiceClient£¬src°üÖÐ×Ô¶¯Éú³ÉÁËcom.dumaisoft.wxbremoteserviceclient°ü¡£

¡¡¡¡µÚ¶þ²½£¬ÒýÈëÔ¶³Ì·þÎñµÄAIDLÎļþ

¡¡¡¡ÔÚsrc°üÖд´½¨com.dumaisoft.wxbremoteservice°ü(ΪÁËÓë·þÎñ¶ËµÄ°üÃûÏàͬ)£¬È»ºó½«ÉÏÃæ±àдµÄIWxbService.aidlÎļþ¿½±´Èë´ËĿ¼¡£ÏÔÈ»£¬ÔÚ±¾¹¤³ÌµÄgenĿ¼ÖÐÒ²Éú³ÉÁËIWxbService.javaÎļþ¡£

¡¡¡¡µÚÈý²½£¬±àдµ÷ÓÃÔ¶³Ì·þÎñµÄ´úÂë

¡¡¡¡´úÂëÈçÏ£º

  1. package com.dumaisoft.wxbremoteserviceclient; 
  2.  
  3. ¡¡import com.dumaisoft.wxbremoteservice.IWxbService; 
  4.  
  5. ¡¡import android.app.Activity; 
  6.  
  7. ¡¡import android.app.Service; 
  8.  
  9. ¡¡import android.content.ComponentName; 
  10.  
  11. ¡¡import android.content.Intent; 
  12.  
  13. ¡¡import android.content.ServiceConnection; 
  14.  
  15. ¡¡import android.os.Bundle; 
  16.  
  17. ¡¡import android.os.IBinder; 
  18.  
  19. ¡¡import android.os.RemoteException; 
  20.  
  21. ¡¡import android.view.View; 
  22.  
  23. ¡¡import android.view.View.OnClickListener; 
  24.  
  25. ¡¡import android.widget.Button; 
  26.  
  27. ¡¡import android.widget.Toast; 
  28.  
  29. ¡¡public class MainActivity extends Activity { 
  30.  
  31. ¡¡private Button btnBind; 
  32.  
  33. ¡¡private Button btnSetName; 
  34.  
  35. ¡¡private Button btnGetName; 
  36.  
  37. ¡¡private IWxbService serviceProxy; //Ô¶³Ì·þÎñµÄ´úÀí 
  38.  
  39. ¡¡private ServiceConnection conn = new ServiceConnection() { 
  40.  
  41. ¡¡@Override 
  42.  
  43. ¡¡public void onServiceDisconnected(ComponentName name) { 
  44.  
  45. ¡¡} 
  46.  
  47. ¡¡@Override 
  48.  
  49. ¡¡public void onServiceConnected(ComponentName name, IBinder service) { 
  50.  
  51. ¡¡//»ñÈ¡Ô¶³Ì·þÎñ´úÀí 
  52.  
  53. ¡¡serviceProxy = IWxbService.Stub.asInterface(service); 
  54.  
  55. ¡¡} 
  56.  
  57. ¡¡}; 
  58.  
  59. ¡¡@Override 
  60.  
  61. ¡¡protected void onCreate(Bundle savedInstanceState) { 
  62.  
  63. ¡¡super.onCreate(savedInstanceState); 
  64.  
  65. ¡¡setContentView(R.layout.activity_main); 
  66.  
  67. ¡¡btnBind = (Button) this.findViewById(R.id.btnBind); 
  68.  
  69. ¡¡btnSetName = (Button) this.findViewById(R.id.btnSetName); 
  70.  
  71. ¡¡btnGetName = (Button) this.findViewById(R.id.btnGetName); 
  72.  
  73. ¡¡btnBind.setOnClickListener(new OnClickListener() { 
  74.  
  75. ¡¡@Override 
  76.  
  77. ¡¡public void onClick(View v) { 
  78.  
  79. ¡¡Intent service = new Intent(); 
  80.  
  81. ¡¡//Remote Service Action name 
  82.  
  83. ¡¡service.setAction("com.dumaisoft.wxbremoteservice.REMOTE_SREVICE"); 
  84.  
  85. ¡¡bindService(service, conn, Service.BIND_AUTO_CREATE); 
  86.  
  87. ¡¡} 
  88.  
  89. ¡¡}); 
  90.  
  91. ¡¡btnSetName.setOnClickListener(new OnClickListener() { 
  92.  
  93. ¡¡@Override 
  94.  
  95. ¡¡public void onClick(View v) { 
  96.  
  97. ¡¡try { 
  98.  
  99. ¡¡serviceProxy.setName("MyName"); 
  100.  
  101. ¡¡} catch (RemoteException e) { 
  102.  
  103. ¡¡e.printStackTrace(); 
  104.  
  105. ¡¡} 
  106.  
  107. ¡¡} 
  108.  
  109. ¡¡}); 
  110.  
  111. ¡¡btnGetName.setOnClickListener(new OnClickListener() { 
  112.  
  113. ¡¡@Override 
  114.  
  115. ¡¡public void onClick(View v) { 
  116.  
  117. ¡¡try { 
  118.  
  119. ¡¡String name = serviceProxy.getName(); 
  120.  
  121. ¡¡Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG).show(); 
  122.  
  123. ¡¡} catch (RemoteException e) { 
  124.  
  125. ¡¡e.printStackTrace(); 
  126.  
  127. ¡¡} 
  128.  
  129. ¡¡} 
  130.  
  131. ¡¡}); 
  132.  
  133. ¡¡} 
  134.  
  135. ¡¡} 
  136.  
  137. ¡¡ 

¡¡¡¡×¢Ò⼸µã£º

¡¡¡¡Ò»¡¢´´½¨Ò»¸öServiceConnectionµÄÄäÃû×ÓÀ࣬ÔÚÆäonServiceConnected·½·¨ÖлñÈ¡Ô¶³Ì·þÎñ´úÀí¶ÔÏóserviceProxy¡£ÊÂʵÉÏ£¬onServiceConnected·½·¨»áÔÚbindService·½·¨µ÷ÓÃʱ±»µ÷Óã¬Òò´ËÄÜÈ·±£Ò»¶¨¿ÉÒÔ»ñµÃÔ¶³Ì·þÎñµÄ´úÀí¶ÔÏó;

¡¡¡¡¶þ¡¢IWxbService.Stub.asInterface(service)·½·¨Ò²ÊÇÓÉIWxbService.javaÎļþÌṩµÄ£¬ÆäÄÚ²¿»úÖƲ»ÓÃÑо¿£¬Ö»ÐèÒªÖªµÀËü»á·µ»ØÒ»¸öIWxbService½Ó¿ÚµÄ¶ÔÏ󣬸öÔÏó¿ÉÒÔͨ¹ýBinderºÚºÐ×Óµ÷ÓÃÔ¶³Ì·þÎñµÄsetNameºÍgetName·½·¨;

¡¡¡¡Èý¡¢Ê¹ÓÃIntentÖ¸¶¨actionΪ”com.dumaisoft.wxbremoteservice.REMOTE_SREVICE”£¬¼´¿ÉÕýÈ·µÄbindµ½Ô¶³Ì·þÎñ¡£

¡¡¡¡ËÄ¡¢bind³É¹¦ºó£¬¾Í¿ÉÒÔͨ¹ýÔ¶³Ì·þÎñµÄ´úÀí¶ÔÏó£¬Ê¹ÓÃÔ¶³Ì·þÎñµÄ¹¦ÄÜÁË¡£

¡¡¡¡Ð¡½á

¡¡¡¡ÖÁ´Ë£¬¶ÁÕßÓ¦¸ÃÄܱȽϿìËٵĿª·¢³öÒ»¸öÔ¶³Ì·þÎñ£¬²¢Äܱàд¿Í»§¶ËÇáËɵĵ÷ÓÃËüÁË¡£»¹ÓÐÒ»µãÐèҪ˵Ã÷µÄÊÇ£¬³ýÁËʹÓÃAIDLÀ´½øÐÐÔ¶³Ì·þÎñµÄ±àдºÍµ÷ÓÃÍ⣬»¹¿ÉÒÔÖ±½ÓʹÓÃIBinder¡¢BinderµÈ½Ó¿ÚºÍÀàÀ´½øÐÐÔ¶³Ì·þÎñ±àдµ÷ÓᣱϾ¹AIDLÖ»ÊÇÒ»ÖÖ±àдbinder¿ò¼ÜµÄ¹¤¾ß¡£

¡¡¡¡ÈôÕæµÄÏëÏêϸÁ˽âbinder»úÖÆ£¬¿ÉÒÔÈ¥ÏêϸÔĶÁaidlÉú³ÉµÄ´úÂ룬²¢ÔĶÁÆäËû´óÉñµÄÎÄÕ¡£

http://www.aseoe.com/ true AndroidÔ¶³Ì·þÎñ±àдºÍµ÷ÓÃ½Ì³Ì http://www.aseoe.com/show-17-742-1.html report <£¿php echo strlen($content) / 2; ?> ¡¡¡¡ËµÃ÷¡¡¡¡ÍøÉϺ¹Å£³ä¶°µÄÎÄÕ¶¼ÊǽéÉÜAndroidÔ¶³Ì·þÎñµÄ£¬Ò»¸ö¸ö½«Binder»úÖÆ¡¢AIDL½²µÃÍ·Í·ÊǵÀ£¬È»¶øûÓм¸¸öÈËÄܹ»¸ø³öÇåÎúµÄ·¶Àý˵Ã÷ÈçºÎÓÃ×î¿ìµÄ·½·¨Ñ§»á±àдºÍµ÷ÓÃÒ»¸öAndroidÔ¶³Ì·þÎñ¡£ÈôÄã½ö½öÊÇÏëÈç
TAG:Android Ô¶³Ì·þÎñ
±¾Õ¾»¶Ó­ÈκÎÐÎʽµÄתÔØ£¬µ«ÇëÎñ±Ø×¢Ã÷³ö´¦£¬×ðÖØËûÈËÀͶ¯³É¹û
תÔØÇë×¢Ã÷£º ÎÄÕÂתÔØ×Ô£º°®Ë¼×ÊÔ´Íø http://www.aseoe.com/show-17-742-1.html

[Ç°¶Ë²å¼þÍƼö] Plugin

1 2 3 4
  • jQueryʵÏÖÖð×ÖÖð¾äÏÔʾ²å¼þl-by-l.min.js
  • jQuery´ø·½Ïò¸ÐÖªµÄÊó±ê»¬¹ýͼƬ±ß¿òÌØЧ²å¼þ
  • jQuery HotKeys¼àÌý¼üÅÌ°´ÏÂʼþkeydown²å¼þ
  • ÏìӦʽÎÞÏÞÂÖ²¥jQueryÐýתľÂí²å¼þ
ÏìӦʽÎÞÏÞÂÖ²¥jQueryÐýתľÂí²å¼þ
webÇ°¶Ë¿ª·¢
°®Ë¼×ÊÔ´Íø Copyright 2012-2014 Www.Aseoe.Com All rights reserved.(½úICP±¸13001436ºÅ-1)