Androidã®eMule

ããã¯ãeDonkeyãããã¯ãŒã¯ããAndroidãå®è¡ããŠããã¢ãã€ã«ããã€ã¹ã«ãã¡ã€ã«ãããŠã³ããŒãã§ããããã«ãªã£ãã¹ããŒãªãŒã§ãã eDonkeyãããã³ã«ïŒED2KïŒã®ã¯ã©ã€ã¢ã³ãã®éçºã¯é·ãéäžæ¢ããããšããæèŠããããŸãããããã¯å®å
šã«çå®ã§ã¯ãããŸããã
ããã«äºçŽããŸã-ããã¯eMuleããã°ã©ã ã®å€æŽã«é¢ãããã®ã§ã¯ãªãããã®ããã°ã©ã ã®ãã¡ãã·ã§ã³ã«é¢ãããã®ã§ããªããç¬ç«ãããããžã§ã¯ãã«é¢ãããã®ã§ãã ãªãeMuleãªã®ã-ã¯ã©ã€ã¢ã³ãã®ãã®ããç¥ãããååã¯äžè¬çãªååã«ãªããéåžžED2Kãããã³ã«ã䜿çšãããã¡ã€ã«å
±æã«ã€ããŠè©±ããšãã«åç
§ãããããã§ãã
以äžã®è©³çŽ°ã
ãŸããã
æ°å¹Žåãç§ã¯ED2Kãããã¯ãŒã¯ïŒeDonkey2000ïŒã®ã¯ã©ã€ã¢ã³ãã®éçºã«åå ããŸããã ãã®ãããã¯ãŒã¯ã¯ããã·ã¢ã§ã¯ã»ãšãã©å¿ããããŠããŸãããããšãŒãããã§ã¯ãŸã éåžžã«äººæ°ããããŸãã æãæåãªé¡§å®¢ã¯eMuleãšãã®ã¯ãã¹ãã©ãããã©ãŒã mod aMuleã§ãã
eDonkeyãããã³ã«ãšå€æŽãããeMuleã¯ã©ã€ã¢ã³ãã¯ãããŒã«ã«ISPãããã¯ãŒã¯ã§äœ¿çšããããããã¯ãŒã¯å
ã§ãã¡ã€ã«ã亀æããŸãã èŠä»¶ã¯æ¬¡ã®ãšããã§ãããã¬ã³ãã®ãµããŒãã®è¿œå ãã¯ãã¹ãã©ãããã©ãŒã ã®LinuxãWindowsãMacãããã³ããã©ãŒãã³ã¹ã®æ¹åã eMuleãaMuleãããã³ãã®ä»ã®ã¯ã©ã€ã¢ã³ãã®ã³ãŒãã調æ»ããåŸãæ¢åã®ããã°ã©ã ã«ãã¬ã³ããæ¿å
¥ãããããããã¹ãŠããŒãããæžãæ¹ãç°¡åã§ããããšãæããã«ãªããŸããã ãããã¯ãŒã¯æ¥ç¶ãšã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããã«ãŒãã«ã«ã³ãŒããåå²ããããšã決å®ãããŸããã ã©ã€ãã©ãªã«ã€ããŠã¯ãæªåé«ãlibtorrent-rasterbarãqBittorrent GUIã®ãããã¿ã€ããšããŠæ©èœããŸãã-æ¢ã«libtorrent-rasterbarã䜿çšããŠããããã§ãã ãããã£ãŠããããžã§ã¯ãã¯C ++ãboostãããã³Qtã䜿çšããŠå®è£
ãããŸããã libtorrent-rasterbarããã³libed2kãã©ã³ã¹ããŒããšããŠãguiã¯åèšèšãããqBittorrentã§ãã
é·ãéãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ãªãã·ã§ã³ã«ã€ããŠèããŠããŸããã QtQuickã¢ããªã±ãŒã·ã§ã³ãJNIãä»ããŠã©ã€ãã©ãªåŒã³åºããè¡ãJavaã¢ããªã±ãŒã·ã§ã³ããŸãã¯ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã§ãããå¯èœã§ãã ã¢ãã€ã«ãã©ãããã©ãŒã ã®éçºçµéšã¯ãŸã£ãããããŸããã§ããããQtã®çµéšããã£ããããæåã®ãªãã·ã§ã³ãéžæãããŸããã ã¢ããªã±ãŒã·ã§ã³èªäœã§ã¯ãªãããã¬ã³ããå«ãŸãªã軜éããŒãžã§ã³ã移æ€ããŸããã ä»åŸã¯ããã¹ãŠãJavaã§æžãçŽããããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãäœæããããšèšããŸãã
ã¯ãã¹ã³ã³ãã€ã«ã©ã€ãã©ãª
å
ã®ãããžã§ã¯ãçšã«å¥ã®libed2kã©ã€ãã©ãªãäœæãããED2Kãããã¯ãŒã¯ã§ã®äœæ¥ãæäŸãããŸãã
libed2kããã«ãããã«ã¯ãã³ã³ãã€ã«æžã¿ã®ããŒã¹ããå¿
èŠã§ããããããå§ããŸããã
é©åãªãœãªã¥ãŒã·ã§ã³ãèŠã€ããããã»ã¹ã§ãå
ã®NDKãšCrystaxNDKã䜿çšããŠãªãã·ã§ã³ãè©ŠããŸããã Crystaxã«ã¯ãæ¢ã«çµã¿ç«ãŠãããããŒã¹ãããããŸãããããŒã¹ããçµã¿ç«ãŠãããšã¯ãç§ã«ãšã£ãŠæãé£ããã¿ã¹ã¯ã®1ã€ã§ããã ãã¹ãã¢ããªã±ãŒã·ã§ã³ã¯éåžžã«è¿
éã«äœæãããŸããããèµ·åæã«ã¯ã©ãã·ã¥ããŸããã éçºè
ã¯ãäœããã®çš®é¡ã®ã¹ã¿ãã«ãã£ãŠãŸã å®è£
ãããŠããªãã·ã¹ãã é¢æ°ã眮ãæããåŒã³åºããããšãã¢ããªã±ãŒã·ã§ã³ãä¿¡å·ãåä¿¡ããŠââã¯ã©ãã·ã¥ããããšãå€æããŸããã ç§ã®æèŠã§ã¯ãããã¯æè¯ã®ãªãã·ã§ã³ã§ã¯ãããŸãã-ã¢ããªã±ãŒã·ã§ã³ã¯æ§ç¯ãããŠããŸãããæ©èœããŸããã ç§ã¯Crystaxã®åæ§ç¯ã«æã¡åã€ããšãã§ããªãã£ãã®ã§ãå
ã®NDKã«é Œããªããã°ãªããŸããã§ããã
ããŒã¹ãã¢ã»ã³ããª
æ³åããŠããããããã£ãšç°¡åã ã£ãããšãããããŸããã äžè¬çã«ãã¹ã¯ãªãããå®è¡ããããšã«ãªããŸãã ãŸãã
Boost-for-Androidãããžã§ã¯ãã
ã芧ãã ããã boostãšNDKã®äºæããŒãžã§ã³ãå¿
èŠã«ãªããŸãã ã¯ãšã¹ãã®å€ãããŒãžã§ã³ã®NDKãããŠã³ããŒãããŠãã ãã-以äžã¯ããããè¡ãæ¹æ³ã®èª¬æãžã®ãªã³ã¯ã§ãã
å®éã«ã¯ãããã§ã»ãŒãã¹ãŠã§ããBoost-for-Androidã®æ瀺ã«åŸãå¿
èŠããããŸãã
å³æžé€šéäŒ
ã©ã€ãã©ãªã¯CMakeã䜿çšããŠãããããã¯åé¡ã§ããã äžè¬ã«ãCMakeã¯Android Studioã§å©çšã§ããŸãããç§ã¯ããã«ã€ããŠäœãç¥ãããåžžã«ã³ã³ãœãŒã«ããã¢ã»ã³ããªãéå§ããŸããã ãããã
android-cmakeãããžã§ã¯ããå©ããŠãããŸããã
ãµããŒãã®ããã«ãAndroid.cmakeãã¡ã€ã«ãè¿œå ããå¿
èŠããããŸãããããã¯Linuxã®æ§æãšã»ãŒåãã§ãfind_packageã®ä»£ããã«find_host_packageã䜿çšããŠããã®ãããªã¹ã¿ããè¿œå ããŸãã
if(NOT COMMAND find_host_package) macro(find_host_package) find_package(${ARGN}) endmacro() endif()
ãã«ãããã»ã¹ã®è©³çŽ°ã«ã€ããŠã¯ã
libed2kãåç
§ããŠ
ãã ãã ã
GUIã¢ã»ã³ããª
ãã®éšåã¯æåããè¡ããªããã°ãªããŸããã§ããã äžéšã®ã¢ãã«ãåå©çšããã«ãŒãã«ã§åäœããããšãå€æããŸããã QMLã³ãŒãã®äŸãªã©ãèŠã æåããæžãã®ã¯éžæè¢ã§ã¯ãªããšããçµè«ã«éããŸãããéçºãç°¡çŽ åããæ¹æ³ãæ¢ãå¿
èŠããããŸãã ç§ã«ãšã£ãŠããã®æ¹æ³ã¯
qml-materialã䜿çšããããš
ã§ãã ã ããã«ãé«åºŠãªèžè¡ã¬ãã«ã§äœæãããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ã€ã¹ã®åºæ¬çãªèŠçŽ ããããŸãã ã€ã³ã¹ããŒã«ã¯ç°¡åã§ããäœæè
ãæšå¥šãããã®ã䜿çšããããšããQtã€ã³ã¹ããŒã«ã®ãã©ã«ããŒã«ãã¹ãŠãããŠã³ããŒãããŠæåã§é
眮ããããšãã§ããŸãã
ããã«ããã¹ãŠãå€ããå°ãªããæšæºãã¹ã«æ²¿ã£ãŠé²ã¿ãŸã-äºåã«çµã¿ç«ãŠãããã©ã€ãã©ãªãžã®ãã¹ãæå®ããã¢ã»ã³ããªãéå§ããŸãã å±éãç°¡çŽ åããããã«ãã¢ã»ã³ããªãéçã«ããŸããã
åºå
ããããªå©çãããããåºåã§ããéçºãç¶ç¶ããæ¹åããæ欲ããããŸãã 詳现ã¯èª¬æããŸãããQtAdMobã«ããåçŽãªGoogleæ€çŽ¢ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã«åºåãåã蟌ããšãã«äœ¿çšããèšäºãžã®ãªã³ã¯ãæäŸãããŸãã
ã¢ã«ãŠã³ã確èªããã»ã¹ã«ã€ããŠèª¬æããŸãã AdMobã«ã¯ãå£åº§ãžã®äŸ¿å©ãªè³éåŒãåºãããããŸãã è³éãåŒãåºãããšãã§ããåºæºã¯100ãã«ããã§ãã ãã ãã1ã€ã®é害ããããŸã-ã¢ã«ãŠã³ãã確èªããå¿
èŠããããŸãã æ€èšŒã¯ãã³ãŒãä»ãã®å®éã®çŽã®ã«ãŒããéµéããããšã§è¡ãããŸãã çŽ1ãæã®ééã§3åè©Šè¡ãããŸãã ç§ã¯ãã¹ãŠã®è©Šã¿ãç¡é§ã«è²»ããããšãæããŠããã£ãšé·ãåŸ
ã£ãŠããŸããããäœãåŸ
ã£ãŠããŸããã§ããã ããããããã¯ãã¹ãŠããŸãçµäºããã®ã§ãç§ã¯åºåã«èšåããããšã«ããŸããã admobã«ãã£ãŠææ¡ãããééã§ãã¬ããåŸ
ã€å¿
èŠã¯ãããŸãã-ãã¹ãŠã®è©Šè¡ãçµäºãããã§ãã¯æéãçµäºãããšãã¡ãŒã«ã§ææžã®ã¹ãã£ã³ãéä¿¡ããã ãã§ç¢ºèªã§ããŸãã ã¹ãã£ã³ã«éãããè¿œå ã§ããŸã-åŒãç¶ãåãå
¥ããããŸãã
転èš
Google Playã§ã®å
¬éã«é¢ããããã€ãã®èšèã Google Playã®äŸã«ã€ããŠèª¬æããŸããããã¯ãä»ã§ã¯ç¡æ¡ä»¶ã®ç¬å è
ã ããã§ãã æ®å¿µãªãããAmazonã®ãããªæãè¿ã競åä»ç€Ÿã¯ååšããŸããã§ããã
ããã§ãã¢ããªã±ãŒã·ã§ã³ã®æºåãæŽããã¢ã«ãŠã³ãã«æ¯æããè¡ãããããã±ãŒãžãçµã¿ç«ãŠãããŸããå
¬éã§ããŸãã ç§ã«ãšã£ãŠããã®åºçç©ã¯äžçš®ã®åçŽãªèªåã¹ããŒãžãšããŠæ瀺ãããããèªäœã§çµäºããããã«ãªããŸããã 幞ããªããšã«ãããã¯åºæ¬çã«åœãŠã¯ãŸããŸããç¹ã«æŽæ°ããã°ã©ã ãå
¬éããå Žåã¯ã説æãšã¹ã¯ãªãŒã³ã·ã§ãããæºåããã ãã§ãã ãã ãã[å
¬é]ãã¿ã³ãã¯ãªãã¯ããåã«ãGoogleã®å
¬éã«ãŒã«ãèªãããšãéèŠã§ããããããªããšãã¢ããªã±ãŒã·ã§ã³ã®ãããã¯ã«é¢ããéç¥ãåãåã£ãåŸã«ã«ãŒã«ãèªãå¯èœæ§ãé«ããªããŸãã ããã¥ã¡ã³ããèªãã®ãé¢åã§ããããã¯ããŠããå匷ããŸããã Googleã¯éåã®æ£ç¢ºãªèª¬æãéä¿¡ããŸãã-éåããã«ãŒã«ã®ã»ã¯ã·ã§ã³ã®ã¿ãåºçç©ãæ€èšŒã«åæ Œããªãã£ãããšãèªåã§å€æããããæ±ããããŸãããããã¯ããã»ã©åçŽã§ã¯ãããŸããã
ãããŠæåŸã«-ã¢ã«ãã¡çãšããŒã¿çã䜿çšãããšãéåžžã«äŸ¿å©ã§ãã ãã¹ãŠã¯ãªãªãŒã¹ãšåãã§ãããã¢ã¯ã»ã·ããªãã£ãèšå®ã§ãããŠãŒã¶ãŒã¯ã¢ããªã±ãŒã·ã§ã³ãå
¬éè©äŸ¡ã§ããŸããã æåã®æ®µéã§è² ã®è©äŸ¡ãé¿ããã®ã«åœ¹ç«ã¡ãŸãã
ã»ãšãã©ç§ã®å¯äžã®PRã¢ã¯ã·ã§ã³ã¯ãå
¬åŒã®eMuleãã©ãŒã©ã ã§ã®çºè¡šã§ãã ç§ã¯ããããã¢ãŒã·ã§ã³ãè©Šã¿ãŸããã§ããã ããã§ããã€ã³ã¹ããŒã«ã®æ°ã¯åŸã
ã«å¢å ããŸããã æåã®æŽæ°åŸãããã°ã©ã ã¯Google PlayãçŠæ¢ããŸããã ã¯ãããããèµ·ãããŸã-ã¢ããããŒãããªãªãŒã¹ããã¢ããªã±ãŒã·ã§ã³ã®ãããã¯ã«é¢ããæçŽãåãåããŸãã ãããã¯ããçç±ã¯ãä»äººã®ãªãããŸããŸãã¯èäœæš©äŸµå®³ã§ãã äžèšŽã®è©Šã¿ã¯å€±æããŸããã RoxetteãããŠã³ããŒãããããã°ã©ã ã®ã¹ã¯ãªãŒã³ã·ã§ãããšãAndroidããŽã®äžéšããçµã¿ç«ãŠãããããã°ã©ã ã¢ã€ã³ã³èªäœãçãããŸããã ããã«ããã®çŠæ¢ã¯åºåã®è¿œå ãã¢ã€ã³ã³ã®æç»ããã®ä»ã®æ¹åãä¿ãã ãã§ããã æ°ããã¢ã€ã³ã³ãšç·šéãããã¹ã¯ãªãŒã³ã·ã§ãããããã³æ°ããååã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãåå
¬éãããšãåé¡ã解決ããŸããã ä»åŸãjDonkeyãšããååã®æ¬¡ã®ã¢ããªã±ãŒã·ã§ã³ãçŠæ¢ãããããããããããšããååã«åé¡ãããã®ã§ã¯ãªãããšæããŸãã æŽæ°ã¯å¹ŽéãéããŠãªãªãŒã¹ãããKademliaã®ãµããŒããè¿œå ãããŸããã
èšçœ®æ°ã¯å¹ŽéãéããŠå¢å ããŸããããçŸåšã¯åŸã
ã«æžå°ãå§ããŠããŸãã ããã¯ãããããJavaã®ããŒãžã§ã³ãžã®ãŠãŒã¶ãŒã®ç§»è¡ãŸãã¯ED2Kãããã¯ãŒã¯ããã®ãŠãŒã¶ãŒã®äžè¬çãªæµåºã«ãããã®ã§ãã 䞊è¡ããŠãåºåãªãã®ææçãå
¬éããŸãã-ãŸã£ããäºæ³å€ã§ããã販売ãããŠããŸããã
äžè¬ã«ãã¢ããªã±ãŒã·ã§ã³ã¯éåžžã«å®å®ããŠããããšã瀺ãããŠããŸãã
ãããã«
å®éãããã¯Androidäžã®C ++ã¢ããªã±ãŒã·ã§ã³ã«é¢ãããã®ã§ãã Qt / C ++ãã³ãã«ã¯ãAndroidã§éåžžã«ããŸãæ©èœããŸãã qml-materialã³ã³ããŒãã³ãã䜿çšãããšãçŸããã€ã³ã¿ãŒãã§ã€ã¹ããã°ããæ§ç¯ã§ããŸãã æ¬ ç¹ã®1ã€ã¯ãã¢ããªã±ãŒã·ã§ã³ã®é·æéã®ããŒããšãã·ã¹ãã ãšã®ããè€éãªçµ±åã§ãã åè¿°ããããã«ãã¢ããªã±ãŒã·ã§ã³ã¯Javaã§æžãçŽãããçŸåšãã®ãªãã·ã§ã³ã®ã¿ãéçºãããŠããŸãã ãã®èšäºã«èå³ãããå Žåã¯ãeDonkeyãããã³ã«ã®å
éšããã€ã¹ãKademliaïŒDHTïŒãšã¯äœããããã³ãã®ä»çµã¿ã«ã€ããŠè©³ãã説æããŸãã
åç
§è³æ