当前位置:首页 » 编程软件 » 手机编程底层

手机编程底层

发布时间: 2023-06-05 01:24:33

Ⅰ 关于学习安卓底层,懂得进

我干了3年Android sdk开发,觉得到了瓶劲没法更进一步,于是花了一年多点时间,大概摸到点门径。根据前辈的经验,Android底层完全入门需要两年。

先说下我的入门过程:
第零步,下载源码,我下的4.2的,框架层源码10G,内核2G多,ctags给框架层建的标签文件都有600M,当时让我有点震撼,用的vim+ctags+cscope来阅读,还算不错,架构挺清晰的。

第一步,我找到了一本好书《Android的设计与实现 第一卷》它讲了Android框架层的启动,初始化,服务框架初始化,Binder,消息循环,PackageManagerService,ActivityManagerService。据作者说后面会出讲UI子系统的第二卷,拭目以待。其实这本书看了几十页我就发现需要第二步的知识,否则看不下去,于是跳去第二步。

第二步,学习linux系统编程,在看《Android的设计与实现》的时候我发现,框架层的Native部分,全是Linux编程。为了掌握这部分知识,我花了4个月学习了《Linux系统编程手册》(TLPI)这本1000多页的书,我以前是搞WIndows文件系统这块的,所以c语言还比较熟,TLPI的习题很有意思,量也比较大,坚持下来还是收获很多。

第三步,花了4个月学习了一些Linux内核的知识,看了LKD,PLKA看了一半多。越学越没底,觉得不懂得越来越多,不过这个也正常,只有靠慢慢磨,估计以后要不断的磨这块。

第四步,回头看Android源码,这次一口气看完了《Android的设计与实现 第一卷》,终于对框架层有了谱。同时真的数次把我看晕,前面看Linux内核源码都没这么晕,不断在java层和Native层之间跳有点磨脑浆。其中我又觉得Java的基础没有打太牢,回去补了一个月的《Core Java》第八版。但是这书没有涉及UI子系统,于是又看了《Android内核剖析》

第五步,《Android内核剖析》(这本书实际上是讲框架层的,作者也是个搞嵌入式的,所以他在写框架层的时候文笔不太好,很罗嗦,不过还是有很多看点,到他后来写做ROM,玩开发板时估计是说到了他的本行,一下子遛起来了看得出还是挺有水平的,这本书知识有点旧毕竟讲的是2.3很多代码已经过时,但是作者很多点子很有参考价值)这本书讲UI子系统和按键/触摸消息处理系统还是很有分量的,尤其13章View绘制那里,结合源码研究很有收获。而后面他讲编译框架和ROM相关的东西都是挺宝贵的资料。

第六步,为了再补一下其他诸如电源管理模块等子系统的知识看了,《深入理解android》系列,个人认为这个系列看起来有点不太舒服,不过作为补充印证还是比较有价值。

第七步,《Android系统源代码情景分析》,罗升阳的源码分析大作,比《Android的设计与实现》分析得更细致,但缺点是涉及到模块比较少,选用的源码也比《Android的设计与实现》更旧一点。看完书后需要去研究作者的博客,东西挺多的,一定让你满意。

第八步,买块开发板自己玩。这步我还没走到,原因是我觉得我还差点准备知识。可能要再几个月,到时准备入块6410或者树莓派。

最后,由于我11年以前都是搞Windows这块的,所以对Linux知识不是很了解,不得已看了这么些书,如果是一直做Linux的人,很多步骤估计可以省掉了。直接上源码才是正道。

我本身做着移动GIS开发的工作,学框架层全是因为兴趣,但招聘平台Android框架层开发人员还是蛮有竞争力的有不少定制ROM,智能电视的工作都处于人才难求状态,毕竟有一定的门槛,现在各种ios培训,让奔着钱干开发的人纷纷涌入,而ios只能干sdk开发的缺点就暴露出来了,一堆新手老手,菜鸟大牛全挤在SDK开发这块,我觉得不太妙。 反观Android这边,虽然入门菜鸟没有搞ios来钱,但是可持续性很好,从sdk-》框架》驱动》内核这样干下去。干着干着发现自己渐渐变成了Linux开发者/嵌入式开发者的人也不少,新人,老手,菜鸟大牛各居其位,层次性很好。

Ⅱ 请问编程中的 上层 和 底层 是什么意思 比如有人说 "游戏用JAVA或c#做上层,用汇编或c/

上层(或者是表层)、中间层和底层没有严格意义上的定义,在不同的项目中需要结合具体需求来具体分析。

一般来说,表层就是指展现给用户看的部分;而底层就是系统的最核心的部分。一般我们认为,越接接硬件的编程就越底层。

比如,一个在线通讯软件(QQ这种),表层就是窗口啊、菜单啊、按钮啊这些玩意儿;中间层是业务逻辑部分,就是你点击这些按钮会产生相应的什么事件,进行了什么操作;底层就是Socket网络通信了。当然,我这里这三层是大致划分的,实际开发中比这个要更具体详细。

再比如,拿题主说的游戏举例子,表层就是各种游戏的界面了;底层就是游戏引擎了。底层干嘛?接收你的鼠标键盘响应信号、操作显卡在显示器指定位置生成各种二维的三维的图像、控制声卡输出音频等等等等。

至于编程语言问题,这就牵扯到低级语言和高级语言的问题了。一般来讲低级语言和高级语言区别在于:

  • 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好。

  • 低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差。

越低级的语言,形式上越接近机器指令(汇编语言就是与机器指令一一对应的)。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动。也就是说你用高级语言写一句,会被转换成许多底层操作,大部分的工作交给了负责转换的机器(即编译器),从而人力得到了解放。因为机器就是用来为人类提供便利的,所以说高级语言的出现是计算机发展的必然结果。(参考:http://blog.csdn.net/guoxiaoqian8028/article/details/9103151)这就产生了执行效率的问题。

所以说用 C/C++ 这类语言更适合写游戏引擎。游戏嘛,必定是要求响应速度极高的,总不能按完键盘了等100毫秒才响应,生成个三维地图电脑卡半天。但一般不会游戏的所有部分都用 C/C++ 来完成,为什么?上面说了,可维护性差、可移植性差。这时候就需要用面向对象这种“高级语言”出马了。

至于题主提到的“不同语言之间的互通”,建议题主理解一下“接口”(不是面向对象里的“接口类型”)的概念。

泛泛而谈,希望对题主有所帮助。

Ⅲ 手机上的安卓操作系统是什么语言编程_安卓系统是用什么语言编写的

1,Android系统框架层次。Android系统内核是基于Linux系统开发而来的,权限高度自由,睁掘源代码完全开放,是一种拓展性非常强的操作系统,免费开源,可定制,这也是迅速风靡全球的原因吧!主要使用对象是移动设备,由Google和开放手机联盟领导及开发。其内核编程语言是c/c。android使用dalvik虚拟机制,本质上它是一个Java虚拟机。而且对于每一个APP都会创建个dalvik虚拟机,也就是一个linux进程。

2,孝早液android底层驱动,以及操作系统全部内核都是使用C语言和汇编语言编程开发。但是android操作系统本身是使用Java开发,使用JNI调用本地的C语言库,由操作系统实现对底层调用。

3,android应用开发,即手机app开发,使用的是Java语言,一般不会用到c/c语言。因此,想投身手机应用开发的小伙伴们巧物,可以直接钻研Java语言即可。

总结来说,安卓系统也只不过是基于linux系统内核开发的一个Java虚拟机,然后在虚拟机里运行java程序。就像我们在windows电脑里安装一个虚拟机,运行其它操作系统进行软件测试一样,这个其它的操作系统就相当于安卓,然后大家开发的所有软件,在这个虚拟机里使用。

希望可以帮到您,谢谢!

Ⅳ 如何用手机进行编程有哪些值得推荐的软件

手机上可以编程的软件其实有很多,有付费的也有免费的,这里简单介绍几个免费的手机编程软件,主要分为C/C++、Java、python、Html和Linux5个方面,感兴趣的朋友可以自己下载尝试一下,主要内容如下:

这里介绍一个手机软件—C++编译器,可以直接编辑运行C/C++代码,代码高亮,自带有语法检查功能,使用起来非常不错,下面我简单介绍一下这个软件:

1.首先,安装C++编译器,这个直接在手机应用商店中搜索就行,如下,大概也就2.6兆左右,直接下载安装:

2.安装完成后,我们就可以直接编写C语言代码了,效果如下,关键字高显亮,还可以自动进行语法检查:

自带有简单的TCC编译器,可以直接编译运行C语言程序,如下:

3.这里你也编写C++程序,效果如下,只不过不能直接编译运行,需要先安装G++插件,才能正常运行:

这里介绍一个手机软件—AIDE,相当于手机上的Java开发环境,可以直接编辑运行Java程序,还可以进行简单的安卓开发,下面我简单介绍一下这个软件:

1.首先,安装AIDE集成开发环境,这个也直接在手机商店中搜索就行,如下:

2.安装完成后,我们直接新建Java项目,之后就可以直接编写Java程序了,效果如下,这里支持语法提示、检查和自动补全功能, 使用起来非常不错:

点击运行这个Java程序,效果如下:

3.这里也可以编写一些简单的安卓程序,效果如下,而且官方自带有教学入门实例,非常适合初学者学习和掌握:

程序运行效果如下:

这里介绍一个手机软件—QPython3,相当于手机上的Python3集成开发环境,自带有Python3解释器,支持命令行和文本编程两种方式,下面我简单介绍一下这个软件:

1.首先,安装QPython3,这个与上面的软件一样,直接在手机应用中搜索就行,如下:

2.安装成功后,打开这个软件,点击主界面中的终端,就可以直接进入到python命令行,一行命令一行输出,效果如下:

3.这里你也可以先使用QEdit编辑器编辑Python程序,然后直接点击运行,效果是一样的,如下:

这里介绍一个手机软件—w3cschool编程学院,可以直接在线编辑和运行Html代码,使用起来非常方便,下面我简单介绍一下这个软件:

1.首先,下载安装w3cschool编程学院,这个也直接搜索就行,如下:

2.安装成功后,打开这个软件,直接搜索Html,就可以找到所有的Html资料和教程,这里我们点击进去,就可以直接查看所有资料,如下:

每一章节都有详细介绍和示例,非常适合初学者学习;

3.这里你也可以在线编辑运行Html代码,非常方便,效果如下:

这里介绍两个手机软件—Termux和Termius,这两个软件都相当于手机上的Linux SSH客户端,可以直接远程连接Linux,执行相关操作,下面我简单介绍一下这2个软件:

1.首先,安装Termux,这个直接搜索就行,如下,不大,直接下载安装:

2.安装完成后,打开这个软件,我们就可以直接执行Bash命令,效果如下:

3.如果你需要远程连接Linux的话,可以先安装ssh命令,之后就可以远程登录Linux服务器了,效果如下:

1.首先,安装Termius,这个也直接搜索就行,如下:

2.打开这个软件,默认会有一个本地的终端连接,可以执行简单的shell操作,如下:

3.这里你也可以新建ssh连接,远程连接Linux系统,非常方便,使用起来也很不错:

至此,这里就介绍完了这5类手机编程软件,感兴趣的朋友可以在自己手机上下载尝试一下,偶尔作为编程学习来说,还是非常不错的,但是实际开发学习的话,建议还是在电脑上进行,调试运行程序更方便,希望以上分享的内容能对你有所帮助吧,也欢迎大家留言交流。

Android的底层是Linux,理论上Android是具有编程完备性的,只不过Android在Linux kennel上加了一层Android运行环境,这一层环境是虚拟机,再加上Android本质上是在移动平台,编程功能就削弱了。iOS的本质是Unix,最早的iPhone甚至是直接运行的Mac OS X,因此iOS同样也具有编程完备性。

不过在正式回答这个问题之前我不得不说一句,倘若你是想把编程作为一个兴趣,你当然可以在手机上写写代码,反过来你要把编程作为以后吃饭的事业,或者说想要在编程方面取得一个比较大的成就,你还是应该选择用电脑编程。

这一款工具你一定要熟悉,这是Android上的一款神器。

Termux可以帮助你在Android上搭建完备的Linux环境,你可以理解为类似Windows上的Cygwin,它并非是Linux上的虚拟机环境,并且安装包只有几百KB而已。

你可以安装python环境,甚至安装Linux上的很多包,这款工具还支持ssh、ftp等众多连接方式。

C4droid是Android平台伤的一款C/C++集成开发环境,默认支持tcc编译器,可以选择安装gcc插件,这款编程工具可以用SDL简单媒体层库,也支持qt开发,甚至还可以开发native Android app开发,功能还是比较全的。

网络贴吧有一些用户发布了比较新的版本,默认使用g++编译器。

这是Android上功能强大、但是使用简单的python集成开发环境,python这门编程语言的缺点是怎么写都行,不过优点也是怎么写也可以,随着人工智能的爆发,python已经成为了一门非常重要的编程语言。

全功能的终端模拟器,pip包管理器,内置了C/C++众多库,用起来非常方便,顺便提醒一下的是,这款软件的作者跟C4droid是同一个。

这个功能还是比较强大的,可以在Android系统上进行app和 游戏 开发,也是一个具有编写、编译、调试的全功能的集成开发环境。

这款集成开发环境支持错误检查、代码重构、智能代码导航、生成apk文件,并且可以直接将生成的apk文件进行安装调试。AIDE还完全兼容eclipse项目,你只需要把代码复制到你的AIDE中,就可以继续写代码。

AIDE有两个版本,一个是面向本地开发的AIDE常规版本,一个是面向网络开发的AIDE Web,主要支持的编程语言有C++/Java/JavaScript等。

当然在iOS平台上也有C/C++集成开发环境,Pico Compiler等编程工具,不过目前在编程工具方面Android平台更加开放,一些开发者也更愿意放一些这些工具上去。不过还是那句话,如果你想学好编程,建议还是到PC上安装相应的开发环境操作,屏幕更大、IDE功能也更多更全,电脑键盘敲代码也比手机上小键盘敲代码舒服得多。

这里介绍几个可以在手机上编程的软件,感兴趣的可以下载一下,试着操作一下:

1.Python:这里推荐一个软件—QPython3,集成了Python3解释器、Console控制台和QEdit编辑器,可以直接编辑运行python代码,也可以进行简单的安卓开发,下面我简单介绍一下这个软件的安装和使用:

安装的话,直接在手机应用中搜索就行,如下:

图1

安卓手机游戏是用什么编程语言开发的


一、安卓系统开发语言-C/C++


android系统是基于Linux内核开发的,所以底丛肢饥层还是Linux内核与驱动。上层是C/C++本地库和Android运行时环境,这一层主要是android虚拟机和支持虚拟机运行的本地库,采用C/C++语言开发饥核。

二、安卓软件编程语言-Java


为了方便开发谷歌采用了Java语言来开发安卓应用,应用程序框架层API是采用Java语言编写的,方便开发者调用。上层是应用层,就是平时开发者自己开发的应用。这一层谷歌官方支持的编程语言是Java和Kotlin。


三、手机软件编程语言-Kotlin


安卓手机应用早期使用Java开发的比较多,现在多了很多用Kotlin开发的,Kotlin是Google和Oracle发打完官司以后,自己推出来的。代码里可以同时使用Java和Kotlin,目前看来Kotlin已经能满足正常开发需求,并能稳渗返定运行,之所以很多公司还没有完全切换,主要还是历史遗留的java代码,已经能稳定运行的,没有必要再花时间和人工去重构。


2d的一般用cocos,语言是c++,3d一般用的是u3d,语言是js或者c#,上面那俩都是跨平台的,要是lz足够牛x的话直接上opengles


Ⅵ 有哪些关于 Android 系统架构,底层实现方面的技术书推荐

深入浅出 Android – Google 手持设备应用程序设计 入门书籍,作者写的很不错,可以在阅读 SDK 的同时阅读这本书,中间的一些使 用介绍的非常清楚,最重要的是中文版的 Google Android 应用框架原理与程式设计 36 技 最早介绍 Android 的中文书籍,台湾人写的繁体版的,看得有些影响,不过还是值 得耐心阅读的 Android A Programmer’s Guide 多个专家写的介绍 Android 的书籍, 内容写的很不错, Ask the Expert 部分针对一些 问题作了详细的说明 Android Essentials 对 Android 介绍的比较全面,从安装到开发,应该有新版本了。 Google Android SDK 开发范例大全 ( 第 2 版 ) 以 Android 手机应用程序开发(采用 AndroidSDK2.1 )为主题,通过 160 多个范例 全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计功力 提供了很大的帮助。 Google Android 开发入门与实战 内容上覆盖了用 Android 开发的大部分场景,从 Android 基础介绍、环境搭建、 SD K 介绍、 Market 使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上, 讲解了 5 个 Android 平台下的完整综合实例及源代码分析,分别是 RSS 阅读器、基 于 Google Map 的个人 GPS 、豆瓣网( Web 2.0 )客户端、在线音乐播放器、手机信 息助手,为初学者学习与实践结合提供了很好的指导。 Android 平台开发之旅 涵盖了 Android 平台 1.5 到 2.2 版本的主要功能特性,立足实际的开发案例, 介绍了 Android 手机平台开发的基础概念、 实用技术和应用模式。 主要内容包括: 平台基础、 开发环境搭建、程序框架、高级界面和底层界面设计、文件系统管理、网络通信、 无线通信、多媒体编程、个人信息管理、电话系统、数据库应用、 XML 应用和地图 应用。开发实例多达 120 例。 如何成为 Android 高手 成为一名真正的 Android 高手必须掌握和遵循的一些准则: 1 ,学会懒惰 2 ,精通 Android 体系架构、 MVC 、常见的设计模式、控制反转( IoC ) 3 ,编写可重用、可扩展、可维护、灵活性高的代码 4 ,高效的编写高效的代码 5 ,学会至少一门服务器端开发技术 Android 开发指南中文版之应用程序框架 Android SDK1.5 版的英文开发资料 Android Development Guide 中应用程序框架部 分的翻译 PDF 文

Ⅶ 手机c语言编程app

手机c语言编程app有《C语言学习宝典》、《C语言编译器》、《C语言编译器IDE》、《菜鸟学C语言》、《手机编程》。

1、《C语言学习宝典》

就算没有电脑也能够完成手机编程,专磨茄枣业客服在线帮你解答任何问题,超多趣味工具制作出简单的APP,来自各路的大神分享自己的原创教程,通俗易懂的教学案例让你一看就懂。

c语言编程介绍

C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储纳返器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
热点内容
shell脚本日志输出 发布:2024-05-03 06:31:04 浏览:712
服务器快捷方式是什么意思 发布:2024-05-03 06:28:18 浏览:107
我的世界怎么成为服务器最靓的仔 发布:2024-05-03 06:26:44 浏览:852
安卓手机用博雅mm1用什么软件 发布:2024-05-03 06:19:23 浏览:692
算法键值 发布:2024-05-03 06:16:52 浏览:5
qq密码哪里开启 发布:2024-05-03 06:03:23 浏览:579
全排列的递归算法 发布:2024-05-03 05:42:28 浏览:901
肥胖的算法 发布:2024-05-03 05:38:09 浏览:783
两个数据库事务 发布:2024-05-03 05:33:41 浏览:855
phpjson转 发布:2024-05-03 05:33:40 浏览:659