最后于2022-6-4更新
此文章拒绝一切形式转载。如果在网上看到文章,作者非"yuanwow"/"元小旦"即为无授权转载!!!原文地址https://blog.youkuaiyun.com/yuanwow/article/details/113728527
前言
写这篇文章的目的
c4droid是安卓手机上c/c++一个比较好的IDE,支持很多拓展库。比如QT,SDL,SDL2,它都支持!
我在写程序时踩过不少的坑,这篇文章是为了自己再踩同样的坑。如果你将要使用它,我建议你可以看看这篇文章,避免你也踩入同样的坑。
我为什么要入坑呢?
- 写手机的安装包程序用JAVA太难学习和维护(对于我而言)。
- 我对C++语法比较熟悉。
- C++更接近底层,灵活性高。
- C++的跨平台性。
(也许你不会赞成上面的某些观点,那只是我的看法,并不重要。)
重要说明(一定要看)
以上前言节选自我的旧文章,如果你第一次点进来,请先看我的旧文章了解安装c4droid的方法:
https://blog.youkuaiyun.com/yuanwow/article/details/104151251
如果你不看旧文章,就会错过安装的相关教程!!!!!!!
如果你已经看过了或者是从旧文章跳转来的,就可以继续往下看了。
代码示例
如果有需要的可以直接对着示例学习
本文章介绍拓展库可能部分借鉴示例讲解。
2022-6-4更新此节
QAIU的代码示例github项目
拓展库
开坑时间:2021-2-6
更新时间:2021-2-6
接下来我会讲解c4droid中一些拓展库的使用,如果有问题请在评论区提出,博主一定及时纠正。
c4droid内置支持常用的游戏库和图形库。
接下来将介绍SDL应用,SDL2应用,Qt应用,JNI应用,SFML应用,FLTK应用。
C4DROID + SDL
SDL 是什么
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
为什么使用SDL
SDL(Simple DirectMedia Layer)被广泛的用于许多著名的游戏。
由于贴近底层,运行效率很高。
为什么在c4droid无法配置成功?
旧文章有提到过这个问题。
在QAIU网站上下载完毕相关组件之后,需要在系统设置启用允许自启动,允许关联启动,允许悬浮窗,禁止电池优化等等。
每个系统具体配置方法不同,一般在设置和手机管家(华为貌似需要到手机管家开悬浮窗和关电池优化)找设置项。
如果没有在c4droid里面安装过SDL组件,需要先在右上角4个点(3个点?)>>安装GCC(全选然后确定)>>安装SDL(全选然后确定(有些版本貌似没有选择就直接解压?))
如何确定是否安装成功了?
先保存文件!!!
在文件保存目录放置一张BMP图片文件(一定是BMP格式,png、jpg什么的改成bmp扩展名不可以),重命名为123.bmp
(不要问我怎么找目录,怎么重命名,什么是扩展名什么的,自己有手有脑自己上网查一下)
用以下代码运行验证:
//注意这段代码是测试SDL1.2,不是SDL2.x,所以不要问我为什么没有SDL_Window什么的。。
#include "SDL/SDL.h"
#include <stdio.h>
#include <stdlib.h>
int main()
{
SDL_Surface *screen;
SDL_Surface *image;
SDL_Rect src,dest;
src.x=0;
src.y=0;
SDL_Init(SDL_INIT_VIDEO);
image = SDL_LoadBMP("123.bmp");
src.w=image->w;
src.h=image->h;
dest.x=dest.y=0;
dest.w=image->w;
dest.h=image->h;
screen=SDL_SetVideoMode(640,480,16,0);
SDL_BlitSurface(image,&src,screen,&dest);
atexit(SDL_Quit);
SDL_UpdateRect(screen,0,0,0,0);
SDL_Delay(5000);
return 0;
}
如果代码运行正常,点击运行会弹出一个全屏窗口(SDL plugin for C4droid),显示你的图片,然后在5秒后自动退出。
给我点赞和关注对我的支持,让我更有信心写文章。
如果更新慢请在评论区催促博主,如果想起会及时更新。