面试宝典整理了55道面试题,给银四面试车加加速~

产品经理、项目经理、开发leader、设计、前端工程师、后端工程师、测试...

测试在评审过程中主要是站在测试的角色从需求的特性来分析需求是否正确或准确。

(1)完整性:每一项需求都必须将所要实现的功能描述清楚,使设计人员获得设计和实现这些功能所需的必要信息。

(2)正确定:每一项需求都必须准确地陈述其要开发的功能。(只有用户代表才能确定需求的正确性)

(3)可行性:每一项需求都必须是在已知的系统或环境内可以实现的。(建立数学模型,进行仿真)

(4)必要性:每项需求都是编写文档的根源,每项需求都唔那个回溯到具体用户。(用户需求,跟踪矩阵,WishList)

(5)无歧义性:对所有的需求,读者只能有一个明确统一的解释。(形式化的语言、图、表)

(6)可验证性:检查每一项需求是否能通过测试用例或其它验证方法。

3.一个完整的测试过程

1)制定系统测试计划

2)编写系统测试用例

3)执行系统测试用例

4)跟踪管理缺陷

5)总结测试

4.测试结束的标准是什么

2)第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。

3)第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。

4)第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某-预订数目的故障。

5.你认为是BUG的,但开发不认同,你觉得怎么沟通才好呢

测试和开发沟通大部分都在讨论bug,测试说是bug但是开发认为这个不是bug,对于测试来说就很头痛了。明明是问题,但是为什么开发不主动修改呢这时候测试应该去需求文档中找出有关这个功能的描述或者去询问产品经理,总之不要正面冲突,要拿出证据来说服开发。

6.近期遇到的比较印象深刻的bug

如果问印象深刻的BUG,很多人会想应该回答一个很难发现的BUG,其实这不一定要找一个很发现的BUG,理想的回答应该是找一个这样的BUG,发现这个BUG改进了研发流程,这是最合理的。

例如:

【问题描述】订单使用余额支付,支付成功之后返回收银台选择支付宝支付,仍可跳转至支付宝页面并支付成功

【复现步骤】

1、在订单确认页点击去支付拉起收银台

2、选择余额支付,并完成支付

3、支付完成之后,返回收银台

3、选择支付宝支付

7、平时做接口测试吗如果做,一般是怎么进行的

我们公司是要求做接口测试的,主要使用的工具是JMeter工具,一般接口测试的步骤如下:

1.分析接口说明书,开发会有一个接口说明书给到我们测试

2.根据接口说明书,设计需要的测试用例,设计用例的方法其实和功能测试有共同之处,例如等价类、边界值、判定表等。

3.使用JMeter工具来创建线程组,一个线程相当于一个用例

4.参测试过程中使用到的数据进行参数化,即数据驱动

5.设置断言对结果进行断言,通常包括JSON断言、文本断言、响应断言等.....

8.为什么开展接口测试

接口测试属于集成测试、测试接入越早,就越能在项目早期发现问题,修复问题成本降低。

接口测试非常快速,UI自动化执行一个测试用例10s左右,接口用例执行一般毫秒级。

9.做接口测试运用过哪些测试工具

(1)Postman

(2)JMeter

(3)SoapUI

(4)Python+requests

(5)Java+HttpClient

(6)Java+OkHttp

10.通用接口用例设计

(1)通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。

(2)参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

(4)异常验证:所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。

11.你们公司的接口测试流程是怎样的

接口测试计划跟功能测试计划是一样的,都是为了确认是否满足需求,确定测试环境及测试计划,为设计测试用例做准备,一般来说,接口测试计划包含概述,测试资源,测试功能及重点,测试策略,测试风险及测试标准

从开发中取得接口文档,了解接口业务,主要包括接口地址、请求方式、入参、出参、返回格式等信息。

12.Python的requests包是干什么的

requests是一个HTTP库,作用是发送HTTP请求,获得响应,往往使用在网络爬虫,接口自动化测试中。

13.在接口测试中关联是什么含义如何使用Postman设置关联

关联就是把上一个接口返回值的部分截取出来,作为下一个接口的参数,能让接口串联运行。

在Postman中设置关联的步骤如下:

(1)通过正则表达式提取的方式或json取值的方式把下一个接口需要的信息从上一个接口截取出来。

(2)使用设置全局变量的代码把取出来的值保存到全局变量里。

(3)在下一个接口中,使用(全局变量)代替要替换的静态值。

14.Get与Post请求的区别

15.web和APP测试有哪些共同点和不同点

共同点:主要是在于功能点的测试是相同的,其它的没有太多相当,一般不管是WEB还是APP的,服务器端都是一样的,所以功能点测试和服务器端的逻辑是一样的。

不同点则主要是在一些APP专项测试方面,主要包括以下几个维度:

web聚焦在浏览器的兼容性;APP聚焦在手机型号的兼容性,操作系统的兼容性,分辨率的兼容性

web则不用安装

APP的安装,升级(相邻,跨版本)

包括APP的响应速度,耗电量,耗流量,手机的cpu,内存web的性能主要包括端页面的性能和服务器的性能

工具模拟弱网

来电,信息等

16.APP测试的内容主要包括哪些,如何开展

业务逻辑正确性测试:依据:产品文档->测试用例编写

1.系统版本:Android:官方版本,定制版本;IOS:官方提供版本

2.分辨率:720*12801080*1920

3.网络情况:2g3g4g5gWi-Fi

2.网络切换和中断恢复:网络切换;中断恢复:

1.升级测试:临近版本升级(1.0->1.1);跨版((0.0....>2.2)

2.安装测试:首次安装;覆盖安装(同版本,不同版本覆盖);卸载后安装

3.卸载测试:首次卸载;卸载安装后在卸载

1.手机资源消耗:cpu,内存

2.流量消耗:图片,数据,视频

3.电量测试

4.崩溃恢复

17.常用的ADB命令

18.app闪退的原因是什么闪退怎么看日志

闪退原因,主要有:

1)、程序缓存过多或者可用内存过低。

2)、安装位置不对,可尝试更改储存位置。

3)、和其它的程序不兼容,或者不兼容操作系统的版本,可卸载重新安装该程序或卸载了一些与系统不兼容的程序;

4)、程序本身问题,有些程序本身存在问题导致闪退

5)、硬件不兼容,比如不兼容某些品牌机器

19.一个版本的测试周期大概是多久

现在互联网项目一般都是3周左右迭代一次,当然不同的公司不一样,有的2周迭代一次,每次迭代要测试多久也是不完全确定的,因为迭代的需求不确定,如果迭代的需求多,那测试周显然会长一些。

对于产品类的项目一般就不太可能3周迭代一次,例如汽车、手机

20.说出10个以上的Linux命令

1、创建文件:touch

2、删除文件:rm(remove)

3、查看文件:cat

4、复制:cp(copy)

5、创建文件夹:mkdir(makedirectory)

6、剪切或者重命名:mv(move)

7、压缩解压缩:tar

8、查看:Islist

9、编辑:vi/vim

10、查看当前路径:pwd(PrintWorkingDirectory)

11、切换用户:suswitchuser

12、创建用户:useradd

13、删除用户:userdel

14、创建用户组:groupadd

15、删除用户组:groupdel

16、查找:find

17、修改权限:chmod(changemode)

18、查看进程:psprocess

21.在Linux系统中,一个文件的访问权限是755,其含义是什么

755表示该文件所有者对该文件具有读、写执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。

22.linux查看文件用什么命令,查看进程用什么命令

23.linux传输文件的方式

24.linux中常见的监控命令

iostat、vmstat、top、free、sar等

25.以/etc/passwd的前五行内容为例,提取用户名

cat/etc/passwd|head-n5|cut-d:-f1

26.在linux中find和grep的区别

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是所有用户。

linux下的find:

27.什么是数据库

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库

28.写出表的增删改查SQL语法

29.事务的特性

1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。

2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某--顺序串行执行的结果相一致。

3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。

4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

30.简述什么是存储过程和触发器

存储过程:是数据库中的一一个对象,Transact-SQL语句的预编译集合,这些语句在一个名称下存储并作为一个单元进行处理。(可以理解为C语言中的函数,有参数、返回值等函数特性)

触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT或DELETE。

profifile的语法如下:

SHOWPROFILE[type[,type]...][FORQUERYn][LIMITrow_count[OFFSEToffset]]

32.如何监控mysql连接池

33.mysql常见的查询优化方法

mysql常见查询优化的方法如下:

1.应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引

2.应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描

3.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描

4.应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描

5.in和notin也要慎用,否则会导致全表扫描

6.应尽量避免在where子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描

7.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描

8.不要在where子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

9.索引并不是越多越好,索引固然可以提高相应的select的效率,但同时也降低了insert及update的效率,因为insert或update时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定...

34.什么是B/S架构,什么是C/S架构,两者有可区别在测试侧重点上有什么不同

一般用PHP、JAVA、ASP.net等开发语言;

一般用C/C++/C#等开发语言

1)HTTP协议是一种使用明文数据传输的网络协议,数据不加密,而HTTPS是协议的升级,就是在HTTP的基础上增加了数据加密,HTTPS是建立在TSL/SSL子层上的协议

2)HTTP端口号80,HTTPS端口号443

3)HTTPS协议的服务器必须要有一套数字证书,而HTTP不需要

36.cookie与session的区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

37.你们项目版本上线(发布)的标准是什么

严格标准:

1、所有的缺陷都被修复并且回归测试通过;

2、所有的需求都被测试覆盖;

3、所有的测试用例都被执行并通过;

4、通过XX缺陷管理方法达到测试退出的条件;

宽松标准:

1、所有的严重级别为一般以上的缺陷都被修复,遗留缺陷加权和小于3;

2、主要的需求都被测试覆盖;

3、所有的H,M级的测试用例都被执行并通过,70%以上的L级用例执行并通过;

38.你会搭建测试环境吗

一般的来说,对于大公司是有专门的人来搭建测试环境和维护环境的,所以回答这个问题可以这样说,我们公司是有专门的人来搭建测试环境的,测试环境不需要我们测试来搭建。

但对于一些小公司来说,则不是这样,小公司测试环境主要是我们测试人的来搭建,当然小公司搭建测试环境也比较简单,主要是一些基础功能的软件进行安装即可,如apache、mysql等。

39.给你一个网站怎么开展测试

2.制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试,界面测试,性能测试,数据库测试,安全性测试,兼容性测试

3.设计测试用例:

(1)功能性测试可以包括,但不限于以下几个方面:链接测试;链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等;提交功能的测试;多媒体元素是否可以正确加载和显示;多语言支持是否能够正确显示选择的语言等

(2)界面测试可以包括但不限于以下几个方面:页面是否风格统一,美观。页面布局是否合理,重点内容和热点内容是否突出。控件是否正常使用。对于必须但为安装的空间,是否提供自动下载并安装的功能。文字检查。

(3)性能测试-般从以下两个方面考虑:压力测试,负载测试,强度测试

(4)数据库测试要具体决定是否需要开展。数据库--般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。

(6)兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性。

4.开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。

5.定期评审,对测试进行评估和总结,调整测试的内容。

40.nginx,tomcat,apache都是什么

Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,是开发和调试JSP程序的首选。

41.apache和nginx的区别

Nginx相对Apache的优点:

Apache相对Nginx的优点

42.Selenium有哪些定位元素方法

1.id定位

2.name定位3.class__name

4.tag__name

5.link_text

6.partial_link_text

7.Xpath

8.CSs

当定位一个元素是,如果存在ID属性值时,我们可以优先考虑ID定位,当没有ID,有name属性值和class属性值时也可以采用name和class_name定位。当次能确定该元素的标签为页面唯一时,可以采用tag.name定位,一般来说采用link.text定位的方法比较少。如果ID,name,class_name单个定位不了,可以采用css和xpath定位。

43.加入购物车如何测试

44.拉取商品详情页

45.搜索商品如何测试

46.支付的接口如何测试的

以调用支付宝为例,后台会有一个专门的程序将客户端的信息发送到支付宝的服务器上。

biz_content={

"out_trade_no":"0000010001000010102953",

"total_amount":"0.01",

"subject":"1181418945838252034",

"body":"1181418945838252034",

"product_code":"QUICK_WAP_WAY"

}

47.优惠卷如何测试

48.积分如何测试

49.结算功能如何测试

测试商品金额的计算公式是否正确"订单总金额=商品总金额-折扣-商品折扣+发票税额+配送费用+保价费用+支付费用+包装费用+贺卡应付款金额=已付款金额-使用余额-使用积分-使用红包"

50.TCP三次握手

51.jmeter,一个接口的响应结果如下:

小贷公司标管理/title>

请用正则表达式方法分别获取一下74956和713504275825这两个数值分别赋值给A1和A2

52.接口产生的垃圾数据如何清理

53.简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程

54.禅道和qc的区别

同为缺陷管理工具。

QC

缺陷查看页面:可以根据自己需要选择要呈现的字段,相对人性化可操作,每个显示的字段都可以进行筛选,使研发人员很快能定位到属于自己的bug,再根据bug状态、优先级进行筛选,使未完结的bug能有序并无遗漏地完成修改;页面还有注释功能,研发人员能写出针对本问题的各种感想,方便完善而又人性化。

THE END
1.C++游戏与小程序开发:跨平台与智能化体验整合在现代游戏与小程序开发领域,C++以其高性能和灵活性成为开发者的首选语言之一。随着跨平台和智能化体验的需求不断提升,如何有效整合这些特性成为开发成功的关键。本文将深入探讨C++在游戏与小程序开发中的应用,分析跨平台开发的挑战与解决方案,并探讨智能化体验的整合方法。 https://www.8kiz.cn/archives/25116.html
2.C++游戏开发探秘2C++游戏开发需要学习的内容包括基础知识、游戏开发环境搭建、游戏开发概念、数据结构和算法、网络编程、多线程编程、数据库管理、内存管理和性能优化、操作系统知识等。 一、基础知识 在开始游戏开发之前,你需要掌握C++的基本语法和一些计算机科学的基础知识。这包括数据类型与变量、控制结构(如if语句、循环)、函数https://blog.csdn.net/zhaoylzy/article/details/144383652
3.Android使用jni调用c++/c方法详解Android编写好jni加载类之后,就要开始生成.h文件了,此文件相当于一个声明文件,起到jni连接c++源代码的桥梁作用(我猜的)。 具体步骤: part1:编译项目,生成.class文件,打开android studio 的Terminal工具,cd 到app/build/intermediates/classes/debug目录下,输入命令 1 javah -jni 包名.JniTest part2:然后你会看到app/buhttps://www.jb51.net/article/143360.htm
4.c++如何使用C++打开%appdata%中的文件夹?众所周知,appdata文件夹是这个 C:\Users\*Username*\AppData\Roaming 在Windows 7 上 由于我的应用程序将部署在各种 Windows 操作系统上,因此我需要能够 100% 地获取文件夹。问题是你如何在 C++ 中做到这一点?因为我不知道确切的 Windows 操作系统,它可能是 XP、Vista 或 7,最重要的是我不知道 用户名 是https://segmentfault.com/q/1010000042729265?utm_source=sf-similar-question
5.C++可以用来开发iOSapp与Androidapp吗?容易吗?C++ 可以用来开发 iOS app 与 Android app吗? 容易吗?手机 Moto Moto Droid 查看全部8条评论回答 写回答 869346779 C++可以用于开发iOS和Android应用程序,但需要使用一些第三方框架来适配不同平台的特性。相对于其他语言来说,C++更加容易掌握,并且具有更高的性能和灵活性。在开发过程中,开发者需要熟悉iOS和https://wap.zol.com.cn/ask/details_22233483_1098436_3.html
6.创建博客阅读器通用Windows平台应用(C++)下面将详细介绍如何使用 C++ 和 XAML 开发 可以部署到 Windows 10 的通用 Windows 平台 (UWP) 应用。该应用阅读来自 RSS 2.0 或 Atom 1.0 源的博客。该教程假定你已熟悉使用 C++ 创建你的首个 Windows 应用商店应用中的概念。要研究该应用的已完成版本,你可以 从 MSDN 代码库网站下载它。在https://go.microsoft.com/fwlink/p/?linkid=255556
7.ASP.NETCore适用于.NET的开源Web框架用于使用 .NET 和 C# 构建 Web 应用和服务的框架。 开始 Windows、Linux 和 macOS 上均支持 使用一个堆栈快速生成 Web 应用 ASP.NET Core 附带生成 Web 应用所需的一切内容,其中包括 Web UI 框架 Blazor,可用于快速创建在任何位置运行的快速、安全且可靠的 Web 应用。 https://asp.net/
8.C++编译器app下载C++编译器安卓版下载[考试学习]C++编译器是一款面向初学者的便携式APP,集成了基础的编辑与编译功能,让用户能够随时编写和测试小规模C++代码,有效辅助学习过程。此外,它还支持从文件管理器直接打开代码文件,便捷地在移动设备上进行代码查看和运行测试。 应用介绍 C++编译器是一款精简但是功能完善的APP,主要为C++初学者提供核心的编辑、https://www.downza.cn/soft/10432004.html
9.AIDEAIDE- IDE for Android Java C++ appfour Reviews: 36179 | Score: 4 | Price: Free InstallAIDE is an integrated development environment (IDE) for developing real Android apps directly on your Android device. Follow interactive coding lessons and step-by-step become an expert app developer. https://www.androidwearcenter.com/androidwear/app/AIDE-+IDE+for+Android+Java+C++/1161?lang=zh
10.c++可以开发安卓app吗?2. 创建项目:打开 Android Studio,创建一个新项目。在创建过程中,选择“Native C++”模板。这将生成一个包含 C++ 原生代码和 Java 代码的项目。其中,Ja安卓APP开发va 代码负责与 Android 系统进行交互,C++ 代码用于实现应用程序的核心功能。 3. 编写 C++ 代码:在项目中,你可以找到一个名为 `native-lib.cpp` https://www.yimenapp.com/kb-yimen/26419/
11.App用户新体验——AgoraNativeSDK3.4.0声网Agora Native SDK 3.4.0 已正式上线。新版本不仅增加了更丰富的实时美声音效、屏幕共享、虚拟节拍器等功能,同时在 SDK 的稳定性、兼容性及安全合规上做了大幅度升级,希望为 App 用户带来更顺畅、舒适的互动新体验。 3.4.0版本 更新了什么? 功能新增 https://open.pgyer.com/h0z59L
12.c++编译器手机版官方版app2024免费下载安装C++编译器app下载安装失败或使用异常,请 -> 一键举报猜你喜欢 文件管理 文件管理软件排行榜 文件管理软件是只能对磁盘上的文件进行管理的软件,他能让你的手机瞬间变成电脑。手机文件管理软件哪个好用?小编悉心整理了手机文件管理软件排行榜、企业文件管理软件、微信文件管理软件。小编为用户推荐各种文件管理软件,让手机操https://m.liqucn.com/rj/771305.wml
13.AppStore上的“C++IDE清新版”打开Mac App Store 购买和下载 App。 C++ IDE 清新版17+ 边学习边直接运行代码实例,一切尽在掌握之中…… 娜陈 专为iPad 设计 “软件开发工具”类第 185 名 4.5 ? 243 个评分 免费 提供App 内购买项目 截屏 iPad iPhone 简介 ***语法高亮的学习资料让您学习更轻松。 **https://itunes.apple.com/cn/app/id1397406762
14.C++App::Initialize方法代码示例本文整理汇总了C++中App::Initialize方法的典型用法代码示例。如果您正苦于以下问题:C++ App::Initialize方法的具体用法?C++ App::Initialize怎么用?C++ App::Initialize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类App的用法示例。 https://vimsky.com/examples/detail/cpp-ex---App-Initialize-method.html
15.c+开发安卓app一般用什么工具?技术博客打开Android Studio,点击”Create New Project”创建一个新项目,选择安卓app开发工具“Native C++”模板,然后按照向导输入项目名称、存储路径、设备支持等信息。 3. 配置Gradle文件 配置项目的build.gradle文件,添加NDK插件和配置C++编译参数,例如: “` android { https://www.yimenapp.net/knowledge/blog-10874.html
16.libappc首页文档和下载应用容器的C++库OSCHINA干不动了伙计们,老板说每天导它个 5000 App 下载 libappc 是一个 C++ 库用来操作应用容器。该库的目标是提供一个灵活的工具包来实现 manifest 解析、创建,可嵌入式的发现、映像的创建提取和缓存,以及一个简单文件系统等等。 代码 Gitee 极速下载/libappc Star 0 | Fork 0 libappc 是一个 C++ 库用来https://www.oschina.net/p/libappc
17.鸿蒙应用NativeSDKC++(JNI)开发实战2.1 创建第一个HamonyOs Native C++项目 2.2 Native C++项目的文件分析 2.2.1 build.gradle 鸿蒙app项目配置 路径entry/build.gradle 配置编译的CPU对应的架构 arm64-v8a 配置C++项目编译用的cmake文件 src/main/cpp/CMakeLists.txt 配置C++ 编译参数-指定C++ 版本 -std=c++17 https://www.51cto.com/article/683198.html
18.推荐几款可以直接在手机上编程的app(包含JavaCPython等三.C4droid是一款C/C++程序集成开发环境,默认使用tcc为编译器,可以选择安装gcc插件(需要root) 选用gcc后,可以用sdl(简单直控媒体层库,需安装sdl plugin for c4droid)和qt(nokia官方开发库,需安装sdl plugin for c4droid)。也可以开发native android app(需安装sdl plugin for c4droid),就像google ndk一样。软件支持https://cloud.tencent.com/developer/article/2054590