1.10款优秀的源码源码Android逆向工程工具
2.安卓不开源会怎样安卓不开源
3.Android Adb 源码分析(一)
4.å¦ä½è°è¯Android Framework
5.androidå¼åå¦ä½è°è¯
10款优秀的Android逆向工程工具
在探索Android逆向工程的世界里,众多工具为开发者和安全专家提供了强大的调试支持。这里有款值得一提的何调工具,它们各具特色,源码源码帮助我们深入理解APK文件和Dalvik虚拟机的调试工作原理: 1SMALI/BAKSMALI:作为Dalvik虚拟机的得力助手,它能反编译和回编译classes.dex,何调学习vue源码提高水平语法类似于Jasmin/dedexer,源码源码且支持注解和调试信息等。调试 ANDBUG:基于jdwp协议的何调Andbug,作为安卓安全神器,源码源码无需源代码即可进行调试,调试其Python封装和脚本断点机制使其极具灵活性。何调 ANDROGUARD:专为Android逆向工程设计,源码源码selector源码解析提供恶意软件分析功能,调试使用DAD反编译器,何调支持DEX、ODEX和APK等文件处理。 APKTOOL:Google官方提供的APK编译工具,可反编译与重构APK,便于资源修改和调试。 AFE:用于安全漏洞检测和恶意软件创建的AFE项目,包含AFE和AFEServer两部分,支持自动化操作和命令行界面。 Dedexer:开源的dex文件反编译工具,方便查看Java源代码结构。大鱼溯源码 ANDROID OPENDEBUG:通过Cydia Substrate进行设备监控,但仅限测试设备。 Dare:提供apk反编译为JavaClass文件的功能,适用于Linux和Mac OS X。 FINO:Android动态分析工具,适用于动态分析场景。 Enjarify:Google出品的Enjarify,将Dalvik字节码转为Java字节码,兼容性与效率出色。 尽管现在java层更多使用ak和apktool等工具,而对于底层分析,IDA和Winhex则是游戏源码优势不二之选。对于Android逆向工程需求,可以根据具体任务选择合适的工具。安卓不开源会怎样安卓不开源
Android操作系统是开源的吗?是。
Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。
尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由AndyRubin开发,主要支持手机。年8月由Google收购注资。海安麻将源码
年月,Google与家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
Android开源吗?
Android是开源的。
安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
Android操作系统最初由AndyRubin开发,主要支持手机。年8月由Google收购注资。年月,Google与家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
Android Adb 源码分析(一)
面对Android项目的调试困境,我们的团队在项目临近量产阶段,将userdebug版本切换为了user版本,并对selinux权限进行了调整。然而,这一转变却带来了大量的bug,日志文件在/data/logs/目录下,因为权限问题无法正常pull出来,导致问题定位变得异常困难。面对这一挑战,我们尝试了两种解决方案。
首先,我们尝试修改data目录的权限,使之成为system用户,以期绕过权限限制,然而数据目录下的logs文件仍保留了root权限,因此获取日志依然需要root权限,这并未解决问题。随后,我们找到了一个相对安全的解决办法——通过adb命令的后门机制,将获取root权限的命令修改为adb aaa.bbb.ccc.root。这一做法在一定程度上增加了后门的隐蔽性,避免了被窃取,同时对日常开发的影响也降至最低。
在解决这一问题的过程中,我们对Android ADB的相关知识有了更深入的理解。ADB是Android系统中用于调试的工具,它主要由三部分构成:adb client、adb service和adb daemon。其中,adb client运行于主机端,提供了命令接口;adb service作为一个后台进程,位于主机端;adb daemon则是运行于设备端(实际机器或模拟器)的守护进程。这三个组件共同构成了ADB工具的完整框架,且它们的代码主要来源于system/core/adb目录,用户可以在此目录下找到adb及adbd的源代码。
为了实现解决方案二,我们对adb的代码进行了修改,并通过Android SDK进行编译。具体步骤包括在Windows环境下编译生成adb.exe,以及在设备端编译adbd服务。需要注意的是,在进行编译前,需要先建立Android的编译环境。经过对ADB各部分关系及源代码结构的梳理,我们对ADB有了更深入的理解。
在后续的开发过程中,我们将继续深入研究ADB代码,尤其是关于如何实现root权限的功能。如果大家觉得我们的分享有价值,欢迎关注我们的微信公众号“嵌入式Linux”,一起探索更多关于Android调试的技巧与知识。
å¦ä½è°è¯Android Framework
ç¨Android Studioè¿è¡æºç è°è¯
å¦ä¸ææè¿°ï¼å¦æéè¦å®ç°æºç è°è¯ï¼å¿ é¡»ç¥é足å¤çè°è¯ä¿¡æ¯ï¼å¨nativeè°è¯ä¸å°±æ¯æè°çãè°è¯ç¬¦å·ããä½æ¯releaseçæ¬çå¨æé¾æ¥åºæè å¯æ§è¡æ件ä¸è¬å¹¶ä¸ä¼å å«æ们éè¦çè°è¯ä¿¡æ¯ï¼å¨Androidç³»ç»ä¸ï¼ /system/lib/* ç®å½ä¸çé£äºç³»ç»so并没æ足å¤çè°è¯ä¿¡æ¯ï¼å æ¤å¦æè¦è¿è¡æºç è°è¯ï¼å¿ é¡»èªå·±ç¼è¯Androidæºä»£ç ï¼æè½è·åè°è¯ä¿¡æ¯ï¼è¿è让è°è¯å¨åå©æ们è°è¯ã
Androidæºç ç¼è¯æ¯ä¸ªéº»ç¦äºå¿ï¼æåè¿ä¸ç¯æç« ä»ç» å¦ä½ä½¿ç¨Dockerè°è¯ ï¼ä½æ¯ï¼Androidçæ¬ä¼å¤ï¼å¦æççéè¦è°è¯å个çæ¬ï¼å¨æ¬å°è¿è¡ç¼è¯å ä¹æ¯ä¸å¯è½çââä¸ä¸ªçæ¬çº¦å G空é´ï¼å¦ææ¯ä¸ªçæ¬é½ç¼è¯ï¼ä½ çMacè¿æ空é´å¯ç¨åï¼å æ¤æ¯è¾æ¨è使ç¨äºæå¡è¿è¡æºç ç¼è¯ï¼æ¯å¦ä½¿ç¨é¿éäºçECSï¼Mçç½éåéå°±è½ä¸è½½å®æºç ï¼ç¼è¯é度è¿å强ï¼4æ ¸8G两个åå°æ¶ãæ¯è¿äº :) å¦æä½ æ²¡æç²¾åç¼è¯Androidæºç ï¼æè¿ä¸ª Demoå·¥ç¨ å¯ä»¥è®©ä½ å°å°é²ï¼éé¢å å«ä¸äºè°è¯çå¿ è¦æ件ï¼å¯ä»¥ä½ä¼ä¸ä¸Nativeè°è¯çæè§ã
å¦ææ们已ç»æ¥æäºè°è¯ç¬¦å·ï¼é£ä¹è¿éè¦ä¿è¯ä½ ç符å·æ件å设å¤ä¸çæ£è¿è¡çå¨æé¾æ¥åºæè å¯æ§è¡æ件æ¯å¯¹åºçï¼ä¸ç¶å°±æ¯é¸¡åé¸è®²äºãæç®åçåæ³å°±æ¯ä½¿ç¨æ¨¡æå¨ãæ们ç¼è¯å®æºç ä¹åï¼ä¸ä¸ªä¸»è¦çç¼è¯äº§ç©å°±æ¯ system.img ï¼è¿ä¸ª system.img ä¼å¨å¯å¨ä¹åæè½½å°è®¾å¤ç /system ååºï¼èsystemååºå å«äºAndroidç³»ç»è¿è¡æ¶çç»å¤§é¨åå¯æ§è¡æ件åå¨æé¾æ¥åºï¼èè¿äºæ件就æ¯æ们çç¼è¯è¾åºï¼æ£å¥½å¯ä»¥ä¸ç¼è¯å¾å°çè°è¯ç¬¦å·è¿è¡é åè°è¯ã模æå¨æä¸ä¸ª -system é项ç¨æ¥æå®æ¨¡æå¨ä½¿ç¨ç system.imgæ件ï¼äºæ¯è¿ä¸ªé®é¢ä¹è§£å³äºã
æåä¸ä¸ªé®é¢å°±æ¯ï¼æ¢ç¶æ¯æºç è°è¯ï¼å½ç¶éè¦æºç äºï¼æ们å¯ä»¥å¨ AOSP ä¸ä¸è½½éè¦çæºç å³å¯ï¼éè¦æ³¨æçæ¯ï¼å¨checkåæ¯çæ¶åï¼å¿ é¡»ä¿è¯ä½ çåæ¯åç¼è¯æºç æ¶åçåæ¯æ¯ä¸è´çã
androidå¼åå¦ä½è°è¯
è½å¤å¨eclipseä¸è¿è¡è°è¯åºç¨ç¨åºä¹åï¼ä½ å¿ é¡»ä¸ºå®å建ä¸ä¸ªå¯å¨é¡¹ãå¯å¨é¡¹æå®åªä¸ªå·¥ç¨å°è¢«å¯å¨ï¼åªä¸ªactivityå¼å§å·¥ä½ï¼ä»¥å使ç¨åªäºæ¨¡æå¨é项çã
æç §ä»¥ä¸æ¥éª¤ä¸ºEclipseçæ¬çåºç¨ç¨åºå建åéçå¯å¨é¡¹ï¼
æå¼å¯å¨é¡¹ç®¡çå·¥å ·ã
å¨Eclipse 3.3 (Europa)ççæ¬ä¸ï¼é æ éæ© Run > Open RunDialog... or Run > Open Debug Dialog... ã
å¨Eclipse3.4 (Ganymede)çæ¬ä¸ï¼é æ éæ© Run > Run Configurations...or Run > Debug Configurations... ã
å¨å·¦è¾¹çå·¥ç¨ç±»åå表éæ©Android Applicationéæ©ï¼åå»ï¼æè ç¹å»å³é®éæ©newï¼,å建ä¸ä¸ªæ°çå¯å¨é¡¹ã
è¾å ¥å¯å¨é¡¹å称ã
å¨Androidæ ç¾ä¸ï¼æµè§è¦å¼å§çå·¥ç¨åActivity ã
å¨Targetæ ç¾ä¸ï¼è®¾ç½®æ³è¦æ¾ç¤ºçå±å¹åç½ç»å±æ§ï¼ä»¥åå ¶ä»ä»»ä½æ¨¡æå¨å¯å¨é项ã
ä½ å¯ä»¥å¨Commonæ ç¾ä¸è®¾ç½®æ´å¤çé项.
æä¸Applyä¿åå¯å¨é ç½®ï¼æè æä¸RunæDebugï¼ï¼ã
è¿è¡åè°è¯åºç¨ç¨åº
ä¸æ¦ä½ 设å®äºå·¥ç¨åå·¥ç¨å¯å¨é ç½®ï¼ä½ å°±å¯ä»¥æç §ä»¥ä¸ç说æè¿è¡åè°è¯åºç¨ç¨åºäºã
ä»eclipse主èåï¼æ ¹æ®æ åµéæ©Run>Run æè Run>Debugï¼å¼å§è¿è¡æè è°è¯æ´»å¨å¯å¨é¡¹ã
注æï¼è¿éæ´»å¨å¯å¨é¡¹æ¯å¨è¿è¡é 置管çä¸ææè¿ä¸æ¬¡éä¸çé£ä¸ªãå®ä¸ä¸å®å°±æ¯å¨Eclipse Navigation é¢æ¿ä¸éæ©çç¨åºï¼å¦ææçè¯ï¼
设置åä¿®æ¹æ´»å¨å¯å¨é¡¹ï¼å¯ä»¥ä½¿ç¨å¯å¨é¡¹ç®¡çå·¥å ·ãå¦ä½è·å¾å¯å¨é¡¹ç®¡çå·¥å ·å¯ä»¥åèå建ä¸ä¸ªå¯å¨é¡¹
è¿è¡æè°è¯åºç¨ç¨åºå°è§¦å以ä¸å¨ä½:
å¯å¨æ¨¡æå¨ï¼å¦æä»è¿æ²¡æå¼å§è¿è¡ã
ç¼è¯å·¥ç¨ï¼ å¦æå¨ä¸æ¬¡ç¼è¯çåºç¡ä¸ä¿®æ¹è¿ä»£ç ï¼å°éæ°ç¼è¯ãå¨æ¨¡æå¨ä¸å®è£ åºç¨ç¨åºã
Runé项ï¼å¼å§è¿è¡ç¨åºã
Debug å¨"Wait for debugger "模å¼ä¸å¯å¨ç¨åº,ç¶åæå¼è°è¯çªå£å¹¶å°Eclipse Javaè°è¯å¨åç¨åºå ³èã
å©ç¨å ¶ä»IDEsåå·¥å ·å¼åAndroidåºç¨ç¨åº
é常æ们使ç¨å®è£ æADTæ件çeclipse Eclipse with the ADT plugin.æ¥å¼åAndroidç¨åºï¼è¿ä¸ªæ件å°ç¼è¾ï¼buildåè°è¯åè½éæå°IDEä¸ã
ç¶èï¼å¦æä½ æ³å¨å ¶ä»çIDEä¸å¼åç¨åºï¼ä¾å¦IntelliJï¼æè 使ç¨æ²¡æADTæ件çeclipseä¹å¯ä»¥ãSDKæä¾äºå®è£ ï¼ç¼è¯ï¼è°è¯åºç¨ç¨åºæéè¦çå·¥å ·ã
å建ä¸ä¸ªandroidå·¥ç¨
Android SDKå å«ä¸ä¸ªactivityCreatorçç¨åºï¼å®å°ä¸ºå·¥ç¨äº§çå¤ä¸ªstubæ件åä¸ä¸ªbuildæ件ãä½ å¯ä»¥ç¨è¿ä¸ªç¨åºå建ä¸ä¸ªæ°ç Androidå·¥ç¨æè å¨ç°æ代ç ä¸å建工ç¨ï¼å¦SDKä¸å å«çä¾åã对äºLinux åMacç³»ç»ï¼SDKæä¾activityCreator.py,ä¸ä¸ª Pythonèæ¬ï¼Windowsä¸åæ¯activityCreator.batä¸ä¸ªæ¹å¤çèæ¬ãæ 论æ¯åªç§å¹³å°ï¼ç¨æ³æ¯ä¸æ ·çã
æ以ä¸æ¥éª¤è¿è¡activityCreatorå建Androidå·¥ç¨:
å¨å½ä»¤è¡ä¸ï¼åæ¢å°SDKä¸çtools/ç®å½ä¸ï¼ä¸ºä½ çå·¥ç¨æ件æ°å»ºä¸ä¸ªç®å½ãå¦æä½ æ¯å¨ç°æ代ç ä¸å建工ç¨ï¼åæ¢å°ç¨åºçæ ¹ç®å½ä¸ã
è¿è¡activityCreatorãå¨å½ä»¤è¡ä¸ï¼ä½ å¿ é¡»æå®å®å ¨åæ ¼çç±»åä½ä¸ºåæ°ãå¦æä½ æ¯å建ä¸ä¸ªå ¨æ°çå·¥ç¨ï¼è¿ä¸ªç±»ä»£è¡¨çä¸å®ååçstubç±»åèæ¬æ件ãå¦ææ¯å¨ç°æ代ç ä¸å建工ç¨ï¼å¿ é¡»æå®è½¯ä»¶å ä¸å ¶ä¸ä¸ä¸ªActivityç±»çå称ãå½ä»¤é项çèæ¬å æ¬ï¼
--out <folder> 设å®è¾åºç®å½ãé»è®¤æ åµä¸è¾åºç®å½ä¸ºå½åç®å½ãå¦æä½ æ³ä¸ºå·¥ç¨æ件å建ä¸ä¸ªæ°çç®å½ï¼å¯ä»¥ä½¿ç¨è¿ä¸ªé项æ¥æåå®ã
--ide intellij, å¨ä¸ä¸ªæ°ç项ç®ä¸çæIntelliJIDEA å·¥ç¨æ件ã
è¿éæ个ä¾åï¼
~/android_linux_sdk/tools $ ./activityCreator.py --out myprojectyour.package.name.ActivityName
package: your.package.name
out_dir: myproject
activity_name: ActivityName
~/android_linux_sdk/tools $
activityCreatorèæ¬çæ以ä¸æ件åç®å½ï¼ä½æ¯ä¸è½éåå·²ææ件ï¼ï¼
AndroidManifest.xml ç¨åºçæ¸ åæ件ï¼åæ¶ä¸ºå·¥ç¨æå®Activityç±»ã
build.xml ä¸ä¸ªAntæ件ï¼ç¨æ¥ç¼è¯/æå åºç¨ç¨åºã
src/your/package/name/ActivityName.java ä½ æå®çè¾å ¥Activityç±»ã
your_activity.iml, your_activity.ipr, your_activity.iws [only with the-ide intelliJ flag] intelliJå·¥ç¨æ件
res/ èµæºç®å½.
src/ æºä»£ç ç®å½.
bin/ buildèæ¬çè¾åºç®å½.
ç°å¨ä½ å¯ä»¥å°å¼åæ件夹移å°ä»»ä½å°æ¹ï¼ä½æ¯è®°ä½ï¼å¿ 须使ç¨tool/æ件夹ä¸çadbç¨åºå°æ件åéå°æ¨¡æå¨ä¸ãå æ¤ä½ éè¦å¨ä½ å·¥ä½ç¯å¢åtools/æ件夹ä¹é´æ´»å¨ã
å½ç¶ä½ éè¦é¿å 移å¨SDKç®å½ï¼å 为å®å°ææç¼è¯èæ¬ãï¼åéæ°buildä¹åéè¦æå¨æ´æ°SDKçæ å°è·¯å¾ï¼
ç¼è¯ androidåºç¨ç¨åº
使ç¨activityCreatorçæçAntæ件build.xmlæ¥ç¼è¯ç¨åº
å¦æä½ æ²¡æï¼ä½ å¯ä»¥éè¿Apache Ant home pageå¾å°Antæ件ãå®è£ å®ï¼å¹¶ç¡®å®å®å¨ä½ çå¯æ§è¡æ件路å¾ä¸ã
å¼å«Antä¹åï¼ä½ é声æJAVA_HOMEç¯å¢åéï¼å¹¶å°å®è®¾ç½®ä¸ºJDKçå®è£ è·¯å¾ã
注 æï¼å¨windowsä¸ï¼JDKé»è®¤çå®è£ è·¯å¾ä¸º"ProgramFiles"ï¼è¿ä¸ªè·¯å¾å°ä¼å¼èµ·Ant失败ï¼å 为路å¾ä¸é´æç©ºæ ¼ã解å³è¿ä¸ªé®é¢ï¼ä½ å¯ä»¥åè¿æ ·æå®ç¯å¢åé JAVA_HOMEï¼JAVA_HOME=c:\Prora~1\Java\ ç¶èç®åç解å³æ¹æ³æ¯å°JDKå®è£ å¨æ²¡æç©ºæ ¼çç®å½ä¸ãä¾å¦ï¼c:\java\jdk1.6.0_.ã
å¦æä½ è¿æ²¡æè¿ä¹åå¤å¥½ï¼æç §ä¸é¢å建ä¸ä¸ªæ°çå·¥ç¨çä»ç»å»ºç«ä¸ä¸ªå·¥ç¨ã
ç°å¨ä½ å¯ä»¥ä¸ºä½ çå·¥ç¨è¿è¡Antç¼è¯æ件ï¼åªéå¨build.xmlåæ件夹ä¸è¾å ¥antå³å¯ãæ¯æ¬¡ä¿®æ¹åæ件ææ¯èµæºï¼é½éè¦éæ°è¿è¡antï¼å®å°æææ°ççåºç¨ç¨åºæå 以便deploy.
è¿è¡Androidç¨åº
è¿è¡ä¸ä¸ªç¼è¯å¥½çç¨åº,ä½ éè¦ç¨adbå·¥å ·å°.apkæ件å è½½å°æ¨¡æå¨ç/data/app/ç®å½ä¸ï¼ç¨æ³å¦ä¸é¢ä»ç»ã
å¯å¨æ¨¡æå¨ï¼å½ä»¤è¡ä¸è¿è¡sdkç®å½ä¸ç/tools/emulatorï¼ã
模æå¨åæ¢å°ä¸»ç»é¢ï¼æ好ä¸è¦å¨ç¨åºè¿è¡çæ¶åå模æå¨å®è£ ç¨åºï¼å¯ä»¥æhomeé®ç¦»å¼åºç¨ç¨åºï¼ã
è¿ è¡adbï¼å®è£ myproject/bin./<appname>.apkæ件ãä¾å¦ï¼å®è£ Lunar Lander 示ä¾ï¼å½ä»¤è¡ä¸ï¼åæ¢å°SDKç®å½ä¸ç/sample/LunarLanderåç®å½ä¸ï¼è¾å ¥../../tools/adbinstall bin/LunarLander.apk
å¨æ¨¡æå¨ä¸ï¼æå¼å¯æ§è¡ç¨åºå表ï¼å·å¨å±å¹ï¼éä¸å¹¶å¯å¨ä½ çåºç¨ç¨åºã
注æï¼å½ä½ 第ä¸æ¬¡å®è£ ä¸ä¸ªActivityæ¶ï¼ä½ å¯è½éè¦å¨å¯å¨é¡¹æ¾ç¤ºä¹åï¼æè å ¶å®ç¨åºè°ç¨å®ä¹åéæ°å¯å¨æ¨¡æå¨ãå 为软件å 管çå·¥å ·é常åªæå¨æ¨¡æå¨å¯å¨æ¶æè½å®å ¨ç审æ¥manifestsã
为ç¨åºéå è°è¯å¨
è¿ä¸èæ们ä»ç»å¦ä½å¨å±å¹ä¸æ¾ç¤ºè°è¯ä¿¡æ¯ï¼ä¾å¦CPU使ç¨çï¼ï¼ä»¥åå¦ä½å°IDEå模æå¨ä¸è¿è¡çç¨åºå ³èèµ·æ¥ã
使ç¨eclipseæ件å¯ä»¥èªå¨ççæè°è¯å¨ãä½ä½ ä¹å¯ä»¥éè¿é ç½®IDESæ¥çå¬è°è¯ç«¯å£å¾å°è°è¯ä¿¡æ¯ã
å¯å¨Dalvik Debug Monitor Server (DDMS) å·¥å · ï¼å®å¨IDEå模æå¨ä¹é´æ®æ¼ç端å£è½¬æ¢æå¡çè§è²ãï¼
设置模æå¨è°è¯é ç½®é项ãä¾å¦ï¼çå°è°è¯ä¿¡æ¯è¢«å è½½åæå¯å¨åºç¨ç¨åºã注æï¼å¾å¤è°è¯é项æ éDDMSä¹å¯ä»¥ä½¿ç¨ï¼ä¾å¦æ¨¡æå¨ä¸æ¾ç¤ºCPUç使ç¨æçï¼æè å±å¹çå·æ°é¢çã
é ç½®IDEï¼ä½¿å¾è°è¯æ¶IDEä¸ç«¯å£å ³è .how to set up Eclipse to debug your project. å å«ä»¥ä¸ä¿¡æ¯ã
é ç½®IDEéå è°è¯ç«¯å£
DDMSå°ä¸ºæ¯ä¸ä¸ªèææºåé ä¸ä¸ªç¹æ®çè°è¯ç«¯å£ï¼è¿ä¸ªç«¯å£å¨æ¨¡æå¨ä¸å¯ä»¥æ¾å°ãä½ å¿ é¡»å°ä½ çIDEä¸æ¤ç«¯å£ï¼èææºä¸ä¿¡æ¯æ ä¸æååºè¿äºç«¯å£ï¼å ³èæè æ¯é»è®¤ç端å£ãè¿æ ·å¯ä»¥ä½¿IDE è¿æ¥å°æ¨¡æå¨ä¸ç¨åºå表ä¸çä»»ä¸ä¸ªç¨åºã
ä½ çIDEéè¦è½å¤å ³è模æå¨ä¸æ£å¨è¿è¡çç¨åºï¼æ¾ç¤ºå®ç线ç¨ï¼å¹¶å è®¸ä½ æèµ·å®ï¼æ£æ¥å®çç¶æï¼è®¾ç½®æç¹ãå¦æä½ å¨å¼å设置é¢æ¿éæ©äºâçå¾ è°è¯âï¼åºç¨ç¨åºå°çå°Eclipseè¿æ¥åæè¿è¡ï¼æä»¥ä½ éè¦å¨è¿æ¥ä¹å设置æç¹ã
ä¿®æ¹æ£å¨è°è¯çç¨åºï¼æè å¨å½åç¨åºè¿è¡æ¶éæ©âçå¾ è°è¯âå°å¼èµ·ç³»ç»ææ»è¿ä¸ªåºç¨ç¨åºãå¦æä½ çç¨åºå¤äºä¸ç§åçç¶æï¼ä½ å¯ä»¥ä½¿ç¨æ¹å¼ææ»å®ï¼æ¹æ³å¾ç®åï¼åªéè¦è®¾ç½®åé©æå¤éæ¡ã
2024-12-25 14:22
2024-12-25 13:42
2024-12-25 12:45
2024-12-25 12:32
2024-12-25 12:31
2024-12-25 12:31
2024-12-25 12:26
2024-12-25 12:17