Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʹÓÃTheos×öÒ»¸ö¼òµ¥µÄMobile Substrate Tweak
 
×÷Õß Jay Freeman£¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-07-29
  10319  次浏览      30
 

Mobile SubstrateºÍTheos

Mobile SubstrateÊÇCydiaµÄ×÷ÕßJay Freeman (@saurik)µÄÁíÍâÒ»¸öÅ£XµÄ×÷Æ·£¬Ò²½ÐCydia Substrate,ËüµÄÖ÷Òª¹¦ÄÜÊÇhookij¸öApp£¬Ð޸ĴúÂë±ÈÈçÌæ»»ÆäÖз½·¨µÄʵÏÖ£¬CydiaÉϵÄtweak¶¼ÊÇ»ùÓÚMobile SubstrateʵÏֵġ£Ä¿Ç°Ö§³ÖiOSºÍAndroidƽ̨¡£

¸ù¾ÝgithubÉϵĽéÉÜ£¬theosÊÇÒ»¸ö¿çƽ̨iPhone Makefileϵͳ¡£ËüµÄÖ÷Òª¹¦ÄÜÊÇÉú³ÉiPhone Ô½ÓüApp¡¢tweakµÈ³ÌÐòµÄ¿ò¼Ü½á¹¹£¬²¢ÌṩmakefileÀ´±àÒë¡¢´ò°üºÍ°²×°¡£

ÐèÒªµÄ×¼±¸¹¤×÷£º

Mac

°²×°Theos£¬´ÓTheosµÄGitHubÉÏcloneÏÂÀ´Ò»·Ý£¬·Åµ½Ä³¸öĿ¼Ï£¬ÕâÀïÎҷŵ½ÁË/opt/Ï¡£

°²×°Xcode Command Line Tools£¬¿ÉÒÔÔÚÃüÁîÐÐÏÂÖ´ÐÐxcode-select --installÀ´°²×°»òÕ߲ο¼SOÀ´°²×°£¬°²×°ÍêÖ®ºóÔÙ½øÐÐÏÂÒ»²½¡£

°²×°dpkg £¬Ê×ÏȰ²×°MacPorts£¬¿ÉÒÔͨ¹ýËüµÄ¹ÙÍø,¸ù¾Ý×Ô¼ºµÄϵͳ°æ±¾À´Ñ¡Ôñ¡£°²×°ºÃÖ®ºó£¬ÖØÆôTerminal£¬Ö´ÐÐport version£¬ÏÔʾ³ö°æ±¾ºÅ˵Ã÷°²×°³É¹¦¡£Èç¹ûÌáʾcommand not found£¬³¢ÊÔÔÚ/etc/pathsÎļþÖмÓÈëÏÂÃæÁ½¸ö·¾¶:/opt/local/bin /opt/local/sbin£¬ÐèҪʹÓÃrootȨÏÞÀ´±à¼­£¬±ÈÈçÓÃVimµÄ»°:sudo vi /etc/paths. ÖØÆôTerminal£¬ÔÙ´ÎÊäÈëport version¾ÍÓ¦¸Ã»áÏÔʾ°æ±¾ºÅÁË£¬È»ºóÖ´ÐÐsudo port selfupdateÀ´¸üÐÂÒ»ÏÂ,Ö®ºóÖ´ÐÐsudo port install dpkgÀ´°²×°dpkg. °²×°dpkgµÄÄ¿µÄÊǰÑÎÒÃÇдµÄtweak´ò³Édeb°ü¡£

JailBreaked iPhone iOS 5/6

°²×°OpenSSH£¬´ò¿ªCydiaµÄÖ÷½çÃæ¾ÍÄÜ¿´µ½OpenSSH Access How-To ÒÔ¼°Root Password How-ToµÄÑ¡Ï¿ÉÒÔ°´ÕÕËüµÄÌáʾһ²½Ò»²½°²×°£¬ÕâÀﲻ׸ÊöÁË£¬ÐèÒªÌáÐѵÄÊÇÒ»¶¨Òª¸ÄµôrootµÄÃÜÂ룬·ÀÖ¹±ðÈËͨ¹ýSSHÁ¬½Óµ½ÄãµÄÊÖ»ú¡£ÕâÒ»²½ÊÇΪÁ˺óÃæÎÒÃÇͨ¹ýSSHÁ¬½Óµ½ÊÖ»ú£¬°Ñdeb°ü°²×°µ½ÊÖ»úÉÏ×¼±¸µÄ¡£

iOS7ÉϵÄMobile Substrate»¹ÓÐbug£¬32λµÄϵͳÏÂÿ´ÎÖØÆôºóÐèÒªÖØÐ°²×°Mobile Substrate²ÅÄÜÕý³£Ê¹ÓÃ, 64λ½ñÌìÃ²ËÆ²ÅÄÜÓá£ÍƼöÔÝʱÔÚiOS5/6µÄ»úÆ÷ÉϲâÊÔ[2014-01-01]¡£

apt. ÔÚcydiaÖÐËÑË÷Apt¼ì²éÊÇ·ñÒѾ­°²×°£¬Ã»Óа²×°¾Í°²×°Ò»Ï¡£

ldid. È«ÃûÊÇLink Identify Editor,Ò²Ö±½Ó¿ÉÒÔÔÚCydiaÖÐËÑË÷È«Ãû°²×°¡£

´´½¨Tweak²¢°²×°µ½ÊÖ»úÉÏ

Ê×ÏÈÎÒÔÚ×ÀÃæÉÏ´´½¨Ò»mytweaksµÄÎļþ¼Ð£¬±£´æÎÒÃÇÒª´´½¨µÄtweak³ÌÐò¡£

~        cd ~/Desktop
? Desktop mkdir mytweaks
? Desktop cd mytweaks

È»ºóÖ´ÐÐÎÒÃǸղŵĻñµÃµÄtheosÀ´Éú³ÉÒ»¸ötweakµÄÄ£°å£º

mytweaks  /opt/theos/bin/nic.pl
NIC 2.0 - New Instance Creator
------------------------------
[1.] iphone/application
[2.] iphone/library
[3.] iphone/preference_bundle
[4.] iphone/tool
[5.] iphone/tweak
Choose a Template (required): 5
Project Name (required): FirstTweak
Package Name [com.yourcompany.firsttweak]: com.joeyio.firsttweak
Author/Maintainer Name [Joey]:
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]:
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]:
Instantiating iphone/tweak in firsttweak/...
Done.

ÔÚ´´½¨Ä£°åµÄʱºò£¬ÎÒÃÇÑ¡Ôñ5£¬´´½¨Ò»¸öiPhoneµÄtweak.ÆäËû4¸öÑ¡Ïî¿ÉÒÔ×Ô¼ºÈ¥ËÑË÷Ï¡£Ãû×ÖÊäÈëFirstTweak£¬°üÃûÎÒÊäÈëcom.joeyio.firsttweak£¬ÏÂÃæµÄÈý¸öÑ¡Ïî¶¼Ö±½Ó»Ø³µÊ¹ÓÃȱʡֵ¡£

MobileSubstrate Bundle filterÕâÒ»Ïî±íʾҪhookµÄ³ÌÐò£¬Ä¬ÈÏÊÇcom.apple.springboard£¬¾ÍÊÇhook Spring Board£¬Èç¹ûÄãÏëhook±ðµÄApp£¬ÕâÀï¸Ä³ÉÄǸöAppµÄBundleID.

OK£¬ÄÇôÎÒÃǵĵÚÒ»¸ötweak¾Í´´½¨ºÃÁË£¬ºÃÏñÒ»µãÒ²²»ÄѰ¡¡£½øÈëµ½firsttweakĿ¼Ï£¬Ê¹ÓÃmake±àÒëһϣ¬¿ÉÄܽá¹ûÊÇÕâÑùµÄ£º

firsttweak  make
/Users/qiaoxueshi/Desktop/mytweaks/firsttweak/theos/makefiles/targets/Darwin/iphone.mk:41: Deploying to iOS 3.0 while building for 6.0 will generate armv7-only binaries.
Making all for tweak FirstTweak...
Preprocessing Tweak.xm...
Name "Data::Dumper::Purity" used only once: possible typo at /Users/qiaoxueshi/Desktop/mytweaks/firsttweak/theos/bin/logos.pl line 615.
Compiling Tweak.xm...
Linking tweak FirstTweak...
Stripping FirstTweak...
Signing FirstTweak...
/bin/sh: ldid: command not found

ÎÒÃÇ¿´µ½ÀïÃæÓÐ2¸ö¾¯¸æ£¬µÚÒ»¸öÎÒûÓÐËÑË÷µ½Ê²Ã´½á¹û£¬µÚ¶þ¸öÊÇÖ»ÒªÊÖ»úÉϰ²×°ldid¾ÍÐÐÁË,ÕâÀï²»ÓùÜËü¡£ÎÒ×Ô¼ºÊÔÁËһϣ¬ÊÇ¿ÉÒÔ°²×°µ½ÊÖ»úÉϵģ¬¿ÉÒÔÔÝʱºöÂÔ£¬Èç¹ûÄÄλС»ï°éÖªµÀʲôԭÒò£¬»¶Ó­¸æÖª¡£

ÔÚ²¿Êðµ½ÊÖ»ú֮ǰȷÈÏÊÖ»úºÍµçÄÔÔÚÒ»¸öwifi»·¾³Ï£¬²¢ÇÒ¿ÉÒÔͨ¹ýSSHÁ¬½Óµ½ÊÖ»ú£¬·½·¨ÊÇÔÚTerminalÏ£¬Í¨¹ýSSHÁ¬½Óµ½ÊÖ»ú£¬Ö®ºó»áÌáʾÄãÊäÈërootÃÜÂ루ÉÏÃæ°²×°SSH²½ÖèÖÐÓÐÌáµ½£©£¬È·±£Á¬½Ó³É¹¦ÔÙÍùϽøÐС£ÊÖ»úµÄIPµØÖ·¿ÉÒÔÔÚwifiÉèÖÃÖп´µ½¡£

ssh root@ÊÖ»úIPµØÖ·

È»ºó°ÑÊÖ»úIPµØÖ··ÅÔÚTHEOS_DEVICE_IP»·¾³±äÁ¿ÖУ¬ÕâÑùtheos²ÅÖªµÀ°²×°µ½ÄÄÀÈçÏ£º

export THEOS_DEVICE_IP=ÊÖ»úIPµØÖ·

È»ºóÖ´ÐÐmake package install´ò°ü²¢°²×°µ½ÊÖ»úÉÏ (Èç¹ûCydiaÔÚǰ̨£¬°ÑËüÍ˵½ºǫ́£¬·ñÔò°²×°»áʧ°Ü)£º

  firsttweak  make package install
/Users/qiaoxueshi/Desktop/mytweaks/firsttweak/theos/makefiles/targets/Darwin/iphone.mk:41: Deploying to iOS 3.0 while building for 6.0 will generate armv7-only binaries.
Making all for tweak FirstTweak...
make[2]: Nothing to be done for `internal-library-compile'.
Making stage for tweak FirstTweak...
dpkg-deb£ºÕýÔÚн¨Èí¼þ°ü¡°com.joeyio.firsttweak¡±£¬°üÎļþΪ¡°./com.joeyio.firsttweak_0.0.1-2_iphoneos-arm.deb¡±¡£
install.exec "cat > /tmp/_theos_install.deb; dpkg -i /tmp /_theos_install.deb && rm /tmp/_theos_install.deb" < "./com.joeyio.firsttweak_0.0.1-2_iphoneos-arm.deb"
root@192.168.199.126's password:
Selecting previously deselected package com.joeyio.firsttweak.
(Reading database ... 6250 files and directories currently installed.)
Unpacking com.joeyio.firsttweak (from /tmp/_theos_install.deb) ...
Setting up com.joeyio.firsttweak (0.0.1-2) ...
install.exec "killall -9 SpringBoard"
root@192.168.199.126's password:

°²×°¹ý³ÌÖÐÐèÒªÊäÈëÁ½´ÎÊÖ»úRootÃÜÂ룬һ´ÎÊÇΪÁ˰Ѵò°üºóµÄdeb³ÌÐòÎļþ´«µ½ÊÖ»úÉÏ£¬ÁíÍâÒ»´ÎÊÇkillµôSpringBoard£¬Ê¹SpringBoardÖØÆô¡£

Íê³ÉºóÔÚCydiaÀïµÄ¡°±ä¸ü¡±ÀÍùÏ·­Ò»·­£¬¾ÍÄÜ¿´µ½Ò»¸öÃû×ÖΪ¡°FirstTweak¡±µÄ²å¼þÁËÁË£¬ÏëÏë½ÓÏÂÀ´³öÈÎCEO£¬Ó­È¢°×¸»ÃÀ£¬×ßÏòÈËÉúá۷壬ÓÐľÓÐÒ»µãС¼¤¶¯£¿

Íê³ÉÒ»¸öС¹¦ÄÜ

µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÃÇ»¹Ã»Ð´¹ýÒ»ÐдúÂëÄØ¡£ÏÂÃæÎÒÃÇÒªÍê³ÉÒ»¸öС¹¦ÄÜ£ºÔÚËøÆÁ½çÃæÔö¼ÓÒ»¸öUILabelÏÔʾһÐÐÎÄ×Ö£¬¿ÉÒÔÊÇÄãµÄ×ùÓÒÃú»òÕ߯äËûµÄ£¬ÕâÀïÎÒÃÇÏÔʾHello, MobileSubstate!!¡£

´ò¿ªÎÒÃǸղŴ´½¨µÄfirsttweakĿ¼ÏµÄMakefileÎļþ£¬ÔÚFirstTweak_FILES = Tweak.xmÏÂÃæÔö¼ÓÒ»ÐÐFirstTweak_FRAMEWORKS = UIKit²¢±£´æÎļþ£¬Ç°×º¶¼ÊÇTWEAK_NAMEµÄÖµ,Ò²¾ÍÊÇFirstTweak,×¢Òâ¸ù¾ÝÄã×Ô¼ºµÄÇé¿öÀ´Ð޸ġ£Ôö¼ÓÕâÐеÄÔ­ÒòºÜÃ÷ÏÔ£¬Ôö¼ÓUILabelÐèÒªÓõ½UIKit Framework¡£Õû¸öÎļþ¿´ÆðÀ´ÏñÕâÑù£º

include theos/makefiles/common.mk

TWEAK_NAME = FirstTweak
FirstTweak_FILES = Tweak.xm
FirstTweak_FRAMEWORKS = UIKit

include $(THEOS_MAKE_PATH)/tweak.mk

after-install::
install.exec "killall -9 SpringBoard"

Õâ¸ö²½ÖèÍê³ÉÖ®ºó£¬ÎÒÃǾÍÒªÕÒµ½ËøÆÁ½çÃæ¶ÔÓ¦µÄViewController£¬È»ºóÌæ»»ËüµÄij¸ö·½·¨£¬°ÑUILabelÌí¼Óµ½ËüµÄviewÉÏ¡£Õâ¸öViewControllerµÄÃû×Ö½ÐSBAwayController£¬ SBÊÇSpringBoardµÄËõд£¬²»ÒªÏëÆ«ÁË :).ÎÒÃÇÒªÌæ»»ËüµÄ- (void)activate·½·¨¡£SBAwayControllerÀàµÄÍ·Îļþ¿ÉÒÔÔÚiOS6µÄ˽ÓÐÀàµÄÍ·ÎļþÖÐÕÒµ½¡£ÔÚSBAwayControllerÀïÓиö½Ð_awayViewµÄivar£¬»ñµÃÕâ¸öivarÐèÒªÒ»¸ötheosÖв»´æÔڵķ½·¨£¬ºÃ°É£¬Ëü½ÐMSHookIvar,Õâ¸ö·½·¨ÔÚĬÈϵÄtheosµÄsubstrate.hÍ·ÎļþÀïûÓУ¬¿ÉÒÔÔÚGitHubµÃµ½°üº¬Õâ¸ö·½·¨µÄÍ·Îļþ¡£ÏÂÔØµ½±¾µØ£¬¸²¸Çtheos/includeϵÄͬÃûÎļþ£¨ÍƼö½«Ô­ÓеÄsubstrate.hÍ·ÎļþÖØÃüÃû£©¡£

OK£¬µ½ÕâÀïÍòʾ߱¸£¬Ö»Ç·CodingÁË¡£

´ò¿ªfirsttweakĿ¼ÏµÄTweak.xmÎļþ²¢Çå¿Õ£¬Ìí¼ÓÏÂÃæÕâ¶Î´úÂ룺

%hook SBAwayController 
- (void)activate {
%orig(); //invoke the orignal method to do what should to do.
NSLog(@"=========================================================");
NSLog(@"Hello MobileSubstrate!!");
NSLog(@"=========================================================");

//get _awayView via MSHookIvar method
UIView *_awayView = MSHookIvar<*>(self, "_awayView");

//create a lable whose width = 200 and height = 100 and add to _awayView
float w = 200;
float h = 100;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake((_awayView.frame.size.width - w)/2,100,w,h)];
label.text = @"Hello, MobileSubstate!!";
label.textAlignment = NSTextAlignmentCenter;
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
[_awayView addSubview:label];
}
%end

´ó¸Å½âÊÍһϣ¬%hook SBAwayControllerÒÔ¼°ÀïÃæµÄ- (void)activate·½·¨£¬Æäʵ¾ÍÀàËÆswizzlingÁËSBAwayControllerµÄactivate·½·¨¡£µ±ÏµÍ³Ö´ÐÐSBAwayControllerµÄactivate·½·¨µÄʱºò»áÖ´ÐÐtweakÀïµÄactivateµÄ·½·¨¡£ ÔÚÕâÀï·½·¨ÀïÎÒÃÇÏÈÖ´ÐÐÁË%orig()£¬¾ÍÊÇÖ´ÐÐÔ­À´µÄactivate·½·¨£¬±£Ö¤Ô­Óеķ½·¨ÏÈÖ´ÐУ¬ÔÙÖ´ÐÐÎÒÃÇ×Ô¼ºµÄ´úÂë¡£

Õâ¸öactivate·½·¨ÔÚµÚÒ»´Î½øÈëËøÆÁ½çÃæµÄʱºò»áÖ´ÐУ¬ÔÚÒÔºóÿ´Î·ÇËøÆÁ״̬Ï£¬°´¹Ø»ú¼üÒ²»áÖ´ÐС£

½ÓÏÂÀ´¾ÍÊÇͨ¹ýMSHookIvar»ñµÃ_awayView¡£È»ºó¾ÍÊÇÎÒÃǷdz£ÊìϤµÄÁË£¬´´½¨Ò»¸öUILabel£¬Ìí¼Óµ½_awayViewÀï¡£µ½ÕâÀï¾Í½áÊøÁË¡£make package installÒ»ÏÂ(»¹ÐèÒªÏÈÖ´ÐÐÒ»ÏÂexport THEOS_DEVICE_IP=ÊÖ»úIPµØÖ·)£¬°²×°µ½ÊÖ»úÉÏ£¬µÈSpringBoardÖØÆôÍ꣬Äã»á¿´µ½ÀàËÆÏÂͼµÄ½çÃæ£º

°ÑÊÖ»úÁ¬½Óµ½µçÄÔÉÏ£¬´ò¿ªXcode£¬ÔÚOrganizerÀïµÄConsoleÀïÄÜ¿´µ½³ÌÐòÖÐʹÓÃNSLog´òÓ¡µÄÐÅÏ¢£¬ÓÃÀ´µ÷ÊԺܷ½±ãÄØ¡£

×ܽá

±¾ÎÄÖ÷ÒªÊǽ²Mobile SubstrateµÄ×÷ÓÃÒÔ¼°ÈçºÎʹÓÃTheos¿ª·¢Ò»¸ö¼òµ¥µÄtweak¡£ÓÐÁËÕâЩÈëÃŵĻù´¡Ö®ºó£¬Äã¾Í¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÏë·¨À´Ð´×Ô¼ºÏ²»¶µÄtweak¡£Èç¹ûÄãÊÇÔÚiOS7ÏÂÔ½ÓüµÄ»°£¬¿ÉÒÔ³¢ÊÔһϰѿØÖÆÖÐÐĵÄAirDropºÍÒôÀÖ²¥·ÅÆ÷¸øÒþ²Øµô£¬ÈÿØÖÆÖÐÐÄ¿´ÆðÀ´¸ü¼ò½à¡£½Ó×Å¿ÉÒÔÔÙ½øÐиĽø£¬±ÈÈçÔÚÀ¶ÑÀ¹Ø±ÕµÄʱºò²»ÏÔʾAirDrop£¬¿ªÆôµÄʱºòÒÀÈ»ÏÔʾ£¬ÒôÀÖÕýÔÚ²¥·ÅµÄʱºòÏÔʾÒôÀÖ²¥·ÅÆ÷£¬·ñÔò²»ÏÔʾ¡£

Õâ¸öСDemoÊÇǰÁ½ÖÜдµÄ£¬Ò»Ö±Ã»ÓÐʱ¼äÕûÀí³öÀ´£¬½ñÌì³éʱ¼äÕûÀíÁËÒ»ÏÂÎÄ×Ö·¢Á˳öÀ´£¬ËãÊÇË͸ø×Ô¼ºÐÂÄêµÄÒ»¼þÀñÎï°É£¡

   
10319 ´Îä¯ÀÀ       30
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ


Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ


ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ