在安卓手机上编程怎么编程?

当前位置:首页 > 新闻资讯9560人阅读
简单介绍如何安装使用C4droid和botbrew,以及如何在手机上用它们编写运行程序。 注意: & 1:C4droid和botbrew都需要手机拥有root权限才可以正常运行。 & 2:本文章绝不提供任何破解程序的下载!
& Author&&&&&& : He YiJun& (storysnail&at& QQ:) & Develop Team : 7fane Team & Editor&&&&&& : Yang QiuXi & Art Designer : He YiJun & License&&&&& : 7fane Team& License 1.0 & Last Update& :
一:使用C4droid
& 1: &&& 到google play搜索C4droid,然后下载安装,现在最新的版本是3.98,当然这么好的软件一定要收些费用的,目前的价格是¥18.61。安装好C4droid点图标运行,它会提示要下载gcc、sdl、QT的插件,按照提示到google play下载和安装。 & 2: &&& c4driod自己的介绍文档,是英文的,很简单也比较全面,懒得翻译了,自己看吧! C4droid is a C/C++ IDE + C/C++ compiler for Android with GNU Makefile, SDL and Qt support. C4droid supports devices with ARM processors only (not devices with Intel x86 or MIPS processor). You can create your own applications on Android phone, run them (even without Internet access: compiler is offline) and export executables (for terminal apps) or APK (for apps with GUI usage). This app uses TCC and uClibc (or GCC with Bionic libc with a plugin), so it has full support of ANSI C and ISO C99. C4droid can be used for educational purposes or to practice in C/C++ language. C4droid supports syntax highlighting, code completion and source code formatting, so it is a very handy tool for programming on the go.
To get C++ support you need: 0) Enough internal memory OR root rights. C4droid doesn't require root rights for devices with more than 50MB of free internal memory. 1) Install GCC plugin (C4droid will ask you to install it). 2) Select G++ compiler in C4droid preferences. 3*) Use iostream, not iostream.h 4*) Add && to your program (before int main)
C4droid contains a Terminal Emulator with BusyBox, so you can use Makefiles without any changes, shell commands syntax is the same as on Linux PC. To compile Makefile projects, open any file in the same folder with Makefile and long-click &Compile& to configure current directory (C4droid will create .c4droid configuration file when you'll press Ok). After configuring folder, you can press compile button and C4droid will build your project. Don't forget to enter executable name and select compilation mode (and press ok also, else changes will be discarded)
C4droid supports SDL, NativeActivity and Qt for GUI now, install SDL plugin for C4droid to use it (only GCC/G++ compiler is supported, so you need GCC plugin). (SDL is detected with #include &SDL.h&, NativeActivity is detected with #include &android_native_app_glue.h&, Qt is detected with #include &QtGui&). There is an experimental support for Qt using necessitas, but note that it's in alpha stage. Qt support limitations: 1) Path to Ministro libraries is hardcoded (/data/data/org.kde.necessitas.ministro/files/qt/lib), so email me if it will change. 2) If you're compiling a single-file Qt app, you must add #include &yoursourcefilenamewithcpp.moc& to the end of file. If you're using .pro file for compilation, you don't need to do that.
Quick manual: If you have found a bug or app is not working, email me.
Long click actions:& 长按某一按键会有第二功能 Save button: save as. Open button: recent files. Run button: run with arguments. Compile button: configure current directory. Tab: close tab.
Result of compilation (binary or APK) can be exported using menu-&export. If you have &Illegal instruction& error, using internal compiler (TCC), install GCC plugin, GCC supports softfloat (by default).
C4droid will check license via the Internet.
Report bugs at .
Some components of this app are licensed under (L)GPL, email me to get the source code. Android is a trademark of Google Inc. Qt is a registered trademark of Digia.
& 3: &&& 相信很多ChineseMan会使用网络上流传的破解版,不过那样做真的没有必要,因为本文第二部分就会介绍botbrew!也许有人会诡辩说botbrew写不了QT和SDL程序,那好,我建议你可以玩玩botbrew basil!
& 4: &&& 我在手机上写了两个示例程序,get-www是一个单文件程序,与前几天写的《使用Code::blocks在windows下写网络程序》中的示例程序功能相同(链接地址是/?p=248)。function-fetch是一个多文件程序,它的作用是从一个指定文件中检索出特定的内容。我使用C4droid和botbrew都成功编译运行了这两个示例程序,下面是在C4droid中的运行截图。示例程序的源代码会附在本文末尾。 get-www示例程序截图
function-fetch示例程序截图
二:使用botbrew
& 1: &&& 到google play搜索botbrew,然后下载安装,botbrew是开源软件,可以访问其官方网址/来了解更多信息,当前版本为1.0.1.7,安装好botbrew点图标运行。 &&
&&& botbrew的主界面和程序管理器类似,在其中可以选择安装很多程序,像gcc、python、perl、lua、lynx、make等。安装好所需软件后,进入终端模拟器(终端模拟器有很多,选择一个你喜欢的下载安装即可,有些android系统会默认带一个)。输入su,取得root权限,然后再输入botbrew,然后就可以输入软件的名字来运行了,不过因为是在root下,所以这种方法是非常危险的!你可以用botbrew建立普通账户来运行,详情请参考borbrew手册/manual.htm 说到botbrew就不得不提botbrew basil,它是botbrew的升级版,但目前还处于开发状态。它可以在手机上安装一个debian环境,你可以直接下载安装debian到data分区或sdcard,安装完一个35mb左右的debian环境后就可以安装各种软件了,gcc,gdb,python,jdk,Xserver(使用前需先关掉安卓的屏幕刷新setprop ctl.stop surfaceflinger),lxde。显然手机已然变成一台计算机了!打开终端模拟器,输入 chroot /botbrew/bin/bash 然后就进入了支持高亮的bash!
& 2:使用botbrew的gcc编译和运行程序 &&& 昨天Ling向我提出了抗议,说写了一个sqlite-test的测试程序,也成功编译了该程序,可偏偏无法运行,还会提示没有权限!
#./sqlite-test
./sqlite-test: permission denied
&&& 然后她尝试了各种方法,用chmod修改权限,用chown修改用户和组,用export修改PATH等,不过都失败了!实际上问题并没有那么复杂,出现这个情况的原因是android只允许在特定文件夹下运行程序,例如/data,所以你需要获得系统的root权限来访问/data文件夹!如果Ling想使用botbrew的gcc编译和运行程序,那么就应该像下面这样做。
//启动终端模拟器后用su命令提升权限
//启动botbrew程序
//进入/data目录
#mkdir ling
//新建一个名为ling的目录,这样方便管理
//进入ling
#mv /sdcard/sqlite-test ./
//将sqlite-test目录以及其下的源文件移动到ling下
#cd sqlite-test
//进入sqlite-test测试程序的目录
//编译测试程序
#./sqlite-test
//测试程序就可以正常运行了!
&&& 有些朋友在看过下面的图片时可能会有疑问,不是说android只允许在特定文件夹下运行程序吗,可你的图片却显示你是直接在sdcard里面运行的测试程序!嗯,关于这个问题我只能回答“开源真好,在自己建造的系统里可以为所欲为!”
function-fetch示例程序截图
get-www示例程序截图
三:两个示例程序的源代码
get-www示例程序源代码
/********************************************************************************
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
Develop Team
7fane Team
Main Programmer
(storysnail&at& QQ:)
7fane Team
License 1.0
Last Update
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********************************************************************************/
#include &stdlib.h&
#include &stdio.h&
#include &string.h&
#include &stdarg.h&
#include &sys/socket.h&
#include &netinet/in.h&
#include &netdb.h&
static int gw_connect(char *domain,int port)
struct hostent *site_
struct sockaddr_in s_
site_dns = gethostbyname(domain);
if(site_dns == NULL) {
printf(&gethostbyname error!\n&);
return -2;
printf(&default ip:
%s\n&,inet_ntoa(*((struct in_addr *)site_dns-&h_addr)));
for(i=0; i& site_dns-&h_length/sizeof(int); i++) {
printf(&IP:%d:%s\n&,i+1,inet_ntoa(*((struct in_addr *)site_dns-&h_addr_list[i])));
sock_sd = socket(AF_INET,SOCK_STREAM,0);
if(sock_sd & 0) {
printf (&socket error!&);
return -1;
memset(&s_addr,0,sizeof(struct sockaddr_in));
memcpy(&s_addr.sin_addr,site_dns -&h_addr_list[0],site_dns-&h_length);
s_addr.sin_family = AF_INET;
s_addr.sin_port = htons(port);
printf(&s_addr ip:
%s&,inet_ntoa(*((struct in_addr *)&s_addr.sin_addr)));
return (connect(sock_sd,(struct sockaddr *)&s_addr,sizeof(struct sockaddr))
& 0 ? -1 : sock_sd);
static int gw_send(int sock_sd,char *fmt,...)
char buf [1024];
va_start(argptr,fmt);
vsprintf(buf,fmt,argptr);
va_end(argptr);
printf(&Send:\n%s\n&,buf);
return send(sock_sd,buf,strlen(buf),0);
void main(int argc,char **argv)
char rBuf[3];
sock_sd = gw_connect(&&,80);
if(sock_sd & 0)
printf(&connect error!\n&);
//注意:该网站只用于个人测试,在2013年11月末到期,
//如果你在之后的日期使用,请使用其它网页地址
gw_send(sock_sd,&GET /test.html\n&);
gw_send(sock_sd,&%c&,10);
while(read(sock_sd,rBuf,1) & 0)
printf(&%c&,rBuf[0]);
close(sock_sd);
function-fetch示例程序源代码
/********************************************************************************
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
function-fetch
Develop Team
7fane Team
Main Programmer
(storysnail&at& QQ:)
7fane Team
License 1.0
Last Update
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********************************************************************************/
#include &stdio.h&
#include &stdint.h&
#include &stdlib.h&
#include &string.h&
#include &sys/stat.h&
#include &sys/param.h&
#include &netinet/in.h&
#include &ff-read.h&
int main (int argc, char *argv[])
char filename[MAXPATHLEN];
switch (argc) {
printf (&please input the dictionary's name: &);
if (!fgets (filename, MAXPATHLEN,stdin)) {
perror (&get string error&);
if (!strncpy (filename, argv[1], MAXPATHLEN)) {
perror (&copy string error&);
fprintf (stderr, &Usage: %s [dictionary name]\n&, argv[0]);
name_len = strlen (filename);
if (filename[name_len - 1] == '\n') {
filename[name_len - 1] = '\0';
name_len--;
strncpy (filename + name_len, &.txt&, MAXPATHLEN - name_len);
printf(&filename:
%s\n&,filename);
ff_PrintInfo (filename);
/********************************************************************************
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
Develop Team
7fane Team
Main Programmer
(storysnail&at& QQ:)
7fane Team
License 1.0
Last Update
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********************************************************************************/
#include &stdio.h&
#include &stdint.h&
#include &stdlib.h&
#include &string.h&
#include &sys/stat.h&
#include &sys/param.h&
#include &netinet/in.h&
#include &ff-read.h&
int ff_PrintInfo (char *filename)
char buf[1024+1];
char keyword[100];
FILE * info_
memset(buf,'\0',1024+1);
memset (keyword, '\0', 100);
info_fd = fopen (filename, &rb&);
if (info_fd == NULL) {
perror (&Open information file error&);
return(0);
while(!feof(info_fd)) {
if (!fgets (buf, 1024, info_fd)) {
if (!strncmp (buf, &[ff-keyword]=&, sizeof (&[ff-keyword]=&) - 1)) {
sscanf (buf, &[ff-keyword]=%s\n&, keyword);
printf (&keyword is %s\n&, keyword);
fclose (info_fd);
/********************************************************************************
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
Develop Team
7fane Team
Main Programmer
(storysnail&at& QQ:)
7fane Team
License 1.0
Last Update
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********************************************************************************/
#ifndef __FF_READ_H__
#define __FF_READ_H__
int ff_PrintInfo (char *filename);
[sourcecode language=&bash&]
/********************************************************************************
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
/*****************************************************************************
For function-fetch
Develop Team :
7fane Team
Programmer
(storysnail&at& QQ:)
7fane Team
License 1.0
Last Update
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********************************************************************************/
CFLAGS = -Wall -ggdb
OBJFILES = main.o ff-read.o
main:$(OBJFILES)
$(CC) $(CFLAGS) $(OBJFILES) -o main
main.o:main.c ff-read.h
$(CC) $(CFLAGS) -c main.c -o main.o
ff-read.o:ff-read.c ff-read.h
$(CC) $(CFLAGS) -c ff-read.c -o ff-read.o
rm -f *.o *~ main
&&&&&&&&&&& 7fane Team 协议 1.0& 中文版
&&& 当您阅读、理解并愿意遵守以下条款时,您就拥有了获取、使用、复制、分发或通过通信 网络传播7fane Team作品的权利。
1. 7fane Team的作品可以在非商业用途下免费使用。
2. 如果软件提供了源代码,那么你可以更改源代码或软件接口以适应你的应用。
3. 在未获得7fane Team的授权之前,你不可以在商业用途下使用7fane Team的作品, && 也不可以将7fane Team的作品用于营利为目的的活动。关于获得许可,请发送Email && 到以获取更多信息。
4. 你不得租赁,再许可,出售,转让,抵押7fane Team的作品和服务。
5. 你不得删除或修改7fane Team作品的版权信息和相关的链接,例如网址信息或“关于窗口” && 中的所有信息,除非您已经获得7fane Team的书面授权。
6. 你不可以通过修改7fane Team的作品来获得衍生作品,更不可以重新分配这些衍生作品。
7. 如果您不能遵守本协议,您的许可将被终止,您必须停止使用并删除7fane Team作品及其 && 副本,并且不可以再继续获取、使用、复制、分发或通过通信网络传播7fane Team作品。
8. 7fane Team拥有并保留修改本协议的权利和在本协议修改后不另行通知的权利。修改后 && 的新协议将适用于新的许可用户。
9. 7fane Team作品是作为不提供任何明确的或隐含的赔偿或担保的形式提供的。
10.7fane Team对于使用其作品而生成的任何信息不承担任何责任,也不会对传播或使用 && 这些信息承担责任。
11. 用户出于自愿而使用本7fane Team作品,您必须了解使用的风险,我们不承诺对用户提供 && 任何形式的技术支持、使用担保,所以你必须承担全部风险。 关于 &7fane Team作品& 的定义: &&& &7fane Team作品& 包括文本、图像、音频视频、软件等由7fane Team创作的一切。
&&& 版权所有 (c),7fane Team 保留所有权利。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6650230次
积分:74255
积分:74255
排名:第12名
原创:435篇
转载:4678篇
译文:22篇
评论:1588条
文章:21篇
阅读:41648
文章:15篇
阅读:31432
文章:22篇
阅读:193808
(4)(8)(28)(21)(47)(1)(1)(8)(170)(814)(1012)(1351)(969)(262)(207)(2)(3)(2)(61)(19)(2)(28)(22)(37)(1)(3)(4)(6)(9)(10)(26)30天精通iPhone手机编程教程-由浅入深地学习每一个案例及所使用的控件和代码-网络编程视频-星火视频教程
&&&&&&&&&&&&&&&30天精通iPhone手机编程教程
名称:30天精通iPhone手机编程教程分类:网络编程主讲:&&&&TAG:&&&&&&时间: 05:13收藏:&&
30天精通iPhone手机编程教程相关介绍
  这部30天精通iPhone手机编程视频教程是一部不可多得的实用教程。它系统、全面地介绍了Object-C编程语言、Xcode和Interface Builder开发工具,如各种iPhone应用程序项目模板的开发流程/原理和控件、实例、框架以及Object-C编程的基本知识。  30天精通iPhone手机编程》分为三个部分,详细地讲解了iPhone SDK中的每一个模板,从基础知识到面向对象的技术,应有尽有。第一部分从第1天至第17天,深入介绍控件的基本特性,使用View-based Application项目模板开发简单的应用程序,其中包括标签、按钮、文本框、网页视图、开关、提示框、页面控制等控件的交互运用,以及如何使用 Navigation-based Application项目模板开发表格视图应用程序;第二部分从第18天至第22天,介绍在应用程序中如何灵活播放声音,以及如何使用Tab Bar Application项目模板开发多种媒体切换播放,其中包括网页、音乐和视频媒体;第三部分从第23天至第30天,介绍iPhone iOS高级特性。使用Windows-based Application项目模板添加视图动画对象,并且使用Utility Application项目模板开发结合声音播放和交互操作的动态应用程序。《30天精通iPhone手机编程》可作为没有任何编程经验的初学者学习iPhone SDK的教材,在30天中由浅入深地学习每一个案例及所使用的控件和代码,使读者通过实践能逐步进入iPhone SDK软件开发行列。  编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。  在计算机系统中,一条机器指令规定了计算机系统的一个特定动作。一个系列的计算机在硬件设计制造时就用了若干指令规定了该系列计算机能够进行的基本操作,这些指令一起构成了该系列计算机的指令系统。在计算机应用的初期,程序员使用机器的指令系统来编写计算机应用程序,这种程序称为机器语言程序。使用机器语言编写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。缺点也很明显,如:编程工作量大,容易出错;依赖具体的计算机体系,因而程序的通用性、移植性都很差。  为了解决使用机器语言编写应用程序所带来的一系列问题,人们首先想到了使用助记符号来代替不容易记忆的机器指令。这种助记符号来表示计算机指令的语言称为符号语言,也称汇编语言。在汇编语言中,每一条用符号来表示的汇编指令与计算机机器指令一一对应;记忆难度大大减少了,不仅易于检查和修改程序错误,而且指令、数据的存放位置可以有计算机自动分配。用汇编语言编写的程序称为源程序,计算机不能直接识别和处理源程序,必须通过某种方法将它翻译成为计算机能够理解并执行的机器语言,执行这个翻译工作的程序称为汇编程序。  使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、烦琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。
┆ 版权所有:星火视频教程网 | 苏ICP备号 | Email:后使用快捷导航没有帐号?
只需一步,快速开始
查看: 4294|回复: 42
在线时间916 小时经验值843 最后登录注册时间帖子阅读权限70UID1451341
学士, 积分 843, 距离下一级还需 257 积分
TA的每日心情郁闷 19:40签到天数: 1 天[LV.1]初来乍到
G币5953 最后登录注册时间
马上注册,结交更多机友,下载更多应用,让你轻松玩转手机。
已有帐号?   下载游戏和软件,请【】进入机锋市场!
在手机上查看和编辑源码,包括语法高亮、自动完成,整合FTP/SFTP。想在手机上查看程序的朋友可以试试看。官网上说是免费的。
13:15 上传
这个是官网地址:[size=13.8889px]/download.htm
13:16 上传
点击文件名下载附件
下载积分: G币 -1
<p id="rate_0669" onmouseover="showTip(this)" tip="jsdjkadjadasda&经验值 + 1
" class="mtn mbn">
黑火燃烧吧!
在线时间1988 小时经验值8621 最后登录注册时间帖子阅读权限140UID249490
叫兽, 积分 8621, 距离下一级还需 1079 积分
TA的每日心情慵懒 20:54签到天数: 1 天[LV.1]初来乍到
G币1783 最后登录注册时间
Gfan软件组新浪微博:/u/
在线时间1224 小时经验值1893 最后登录注册时间帖子阅读权限90UID1498182
硕士, 积分 1893, 距离下一级还需 607 积分
TA的每日心情开心 22:19签到天数: 1 天[LV.1]初来乍到
G币1575 最后登录注册时间
沙发& &字数不够怎么办& & ?
我很菜但是我愿意帮助别人
在线时间1145 小时经验值614 最后登录注册时间帖子阅读权限60UID600091
大学本科, 积分 614, 距离下一级还需 86 积分
TA的每日心情无聊 14:35签到天数: 6 天[LV.2]偶尔看看I
G币3561 最后登录注册时间
牛13的软件。
在线时间916 小时经验值843 最后登录注册时间帖子阅读权限70UID1451341
学士, 积分 843, 距离下一级还需 257 积分
TA的每日心情郁闷 19:40签到天数: 1 天[LV.1]初来乍到
G币5953 最后登录注册时间
自己顶一下~
黑火燃烧吧!
在线时间676 小时经验值2750 最后登录注册时间帖子阅读权限100UID767708
博士, 积分 2750, 距离下一级还需 750 积分
TA的每日心情慵懒 17:08签到天数: 155 天[LV.7]常住居民III
G币6364 最后登录注册时间
不错。。。。。。。。
在线时间676 小时经验值2750 最后登录注册时间帖子阅读权限100UID767708
博士, 积分 2750, 距离下一级还需 750 积分
TA的每日心情慵懒 17:08签到天数: 155 天[LV.7]常住居民III
G币6364 最后登录注册时间
怎么用???????????????
在线时间186 小时经验值258 最后登录注册时间帖子阅读权限50UID1123962
大学专科, 积分 258, 距离下一级还需 142 积分
该用户从未签到
G币135 最后登录注册时间
对不起,您的G币不足(小于 0 )。
在线时间186 小时经验值258 最后登录注册时间帖子阅读权限50UID1123962
大学专科, 积分 258, 距离下一级还需 142 积分
该用户从未签到
G币135 最后登录注册时间
good!!!!!!!!!!!!!!!
在线时间0 小时经验值1 最后登录注册时间帖子阅读权限10UID3735699
幼儿园, 积分 1, 距离下一级还需 14 积分
该用户从未签到
G币1 最后登录注册时间
very good.....
Powered by用手机来编程,可以实现吗?
[问题点数:40分,结帖人BEYONDMA]
用手机来编程,可以实现吗?
[问题点数:40分,结帖人BEYONDMA]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2010年1月 移动平台大版内专家分月排行榜第三
2010年8月 移动平台大版内专家分月排行榜第三
2010年6月 其他数据库开发大版内专家分月排行榜第二2010年6月 Oracle大版内专家分月排行榜第二2010年5月 其他数据库开发大版内专家分月排行榜第二
2011年1月 其他数据库开发大版内专家分月排行榜第三2010年12月 其他数据库开发大版内专家分月排行榜第三
2011年12月 扩充话题大版内专家分排名第三
2015年2月 Java大版内专家分月排行榜第二2014年3月 Java大版内专家分月排行榜第二
2014年9月 Java大版内专家分月排行榜第三2014年6月 Java大版内专家分月排行榜第三2014年2月 Java大版内专家分月排行榜第三2013年11月 Java大版内专家分月排行榜第三2013年10月 Java大版内专家分月排行榜第三
2010年12月 移动平台大版内专家分月排行榜第二2010年11月 移动平台大版内专家分月排行榜第二
2011年5月 移动平台大版内专家分月排行榜第三2011年4月 移动平台大版内专家分月排行榜第三2011年3月 移动平台大版内专家分月排行榜第三
2008年12月 移动平台大版内专家分月排行榜第一
2009年3月 移动平台大版内专家分月排行榜第三2009年1月 移动平台大版内专家分月排行榜第三2008年11月 移动平台大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 如何在手机上编程 的文章

 

随机推荐