1.Linux下的源码安装和启动《Skynet服务器框架》
2.skynet源码结构、启动流程以及多线程工作原理
3.skynet框架应用-skynet介绍与搭建
4.框架skynet中actor模型
5.手把手教你从零跑一个Skynet,地址详细教程,源码含案例讲解
6.skynet中actor模型
Linux下的地址安装和启动《Skynet服务器框架》
前言
探索服务器开发,发现云风大神的源码Skynet开源服务器框架,适用于游戏与通用服务器基础。地址众创空间网站源码
Skynet简介
Skynet负责服务注册与管理,源码多线程协调服务间调用与通讯。地址
核心功能
Skynet核心在于启动C模块,源码绑定唯一id作为handle,地址服务间自由通信。源码
每个模块可注册callback接收消息,地址服务由消息驱动,源码挂起时CPU零消耗。地址
名字服务
提供易读服务名称,源码id与运行态相关,而名称稳定。
功能概览
Skynet负责消息在服务间的发送与接收,确保线程安全,专注于消息处理。
优点解析
高低级语言协同,C高效,lua便捷,组件化能力强,支持C扩展。
单进程优势
避免多进程带来的锁问题,使用线程池实现高效并发。
下载与配置
Linux环境下使用git拉取Skynet源码,修改example配置文件启动。
编译过程
源码编译后,提供可执行文件skynet,需配置启动参数config文件。
配置文件关键点
设置线程数、启动服务、C路径、日志配置等,定制化配置满足不同需求。
启动流程
创建配置文件,传入启动参数,启动skynet服务,实现服务间高效通信。
总结
Skynet为高效服务器框架,整合C与lua,支持组件化与单进程模型,提供易用配置与高并发处理能力,适合游戏与通用服务器场景。
skynet源码结构、启动流程以及多线程工作原理
本文主要介绍skynet源码目录结构、启动流程以及其多线程工作原理。
1、skynet目录结构
只允许上层调用下层,而下层不能直接调用上层的api,这样做层次清晰。
2、skynet启动流程
启动skynet方式:终端输入./skynet exmaple/config
启动入口函数为skynet_main.c/main, config作为args[1]参数传入
调用skynet_start.c/skynet_start函数
3、skynet多线程工作原理
线程创建工作由skynet_start.c/start完成,主要有以下四类线程:
1、moniter线程
初始化该线程的key对应的私有数据块
每5s对所有工作线程进行一次检测
调用skynet_monitor_check函数检测线程是否有卡住在某条消息处理
2、timer定时器线程
每隔微秒刷新计时、唤醒等待条件触发的工作线程并检查是否有终端关闭的信号,如果有则打开log文件,将log输出至文件中,在刷新计时中会对每个时刻的链表进行相应的处理.
3、socket套接字线程
处理所有的套接字上的事件,该线程确保所有的工作线程中至少有一条工作线程是处于运行状态的,以便可以处理套接字上的事件。
4、worker工作线程
从全局队列中取出服务队列对其消息进行处理,其运行函数thread_worker的工作原理:首先初始化该线程的key对应的私有数据块,然后从全局队列中取出服务队列对其消息进行处理,最后当全局队列中没有服务队列信息时进入等待状态,等待定时器线程或套接字线程触发条件。
4、skynet消息处理如何保证线程安全?
以上介绍了skynet源码中的目录结构以及各部分功能,接着介绍了skynet的启动流程,最后介绍了skynet的多个线程是如何进行协同工作的。
skynet框架应用-skynet介绍与搭建
Skynet是牛贝程序源码一个基于C和lua的开源服务端并发框架,采用单进程多线程Actor模型,专为在线游戏服务器设计。框架支持被动消息驱动机制,每个服务通过callback函数接收消息。Skynet确保一个服务的callback函数永远不会被并发调用,同时保证一个服务发送给另一个服务的消息顺序。底层通过线程消息队列实现消息传递,消息由源地址、目的地址和数据块组成。框架使用多线程模型,底层有一个线程消息队列,每个线程不断从队列中获取消息并调用服务的callback函数。对于点对点消息,要求发送者分配数据内存,接受方处理完毕后释放内存,以避免额外的数据拷贝。Skynet的核心功能是启动一个符合规范的C模块,并为其分配一个永不重复的数字ID作为handle,模块被称为服务。服务间可自由发送消息,每个服务通过注册callback函数接收消息,状态由自身维护,行为通过消息传递实现。
Actor模型由状态、行为和邮箱组成,内部状态由Actor自己维护,避免了并发编程中的问题。每个Skynet服务相当于一个LUA虚拟机,即Actor。Actor模型通过消息传递实现并发编程,简化了多线程编程的复杂性。Skynet系统提供timeout消息,用于触发定期操作。服务通过lua或C语言实现,代码分为不同的目录结构管理。
在Ubuntu上搭建Skynet框架,首先安装git代码管理工具。从GitHub下载Skynet源代码。Skynet源代码目录结构包括第三方库、lua语言封装的常用库、数据库驱动、加密算法等。编译Skynet时,可能需要安装autoconf库。运行Skynet服务器,使用example/config文件启动服务,修改启动值为特定服务名,如test。运行客户端example/client.lua时,确保已安装lua虚拟机。Skynet服务器运行时,环境变量在conf中配置,所有服务共享。服务初始化时,使用skynet.init注册函数,确保在skynet.start之前执行特定任务。
通过示例代码,如test.lua、testinit.lua和testenv.lua,演示如何编写、配置和初始化服务。Skynet框架在并发编程、消息驱动机制、Actor模型应用等方面提供了强大的支持,简化了在线游戏服务器的开发。
框架skynet中actor模型
Skynet框架中的Actor模型详解
Skynet是一个轻量级的游戏服务器框架,但其应用范围远不止于此,适用于多种场景。它以轻便著称,主要体现在以下几个方面: 核心技能:Skynet需要掌握的技能包括C/Lua接口编程、服务开发以及组件开发,这些是构建游戏服务器的基础。 安装过程分为两个步骤:一是安装依赖,二是下载源码并编译安装。多核并发编程是Skynet的一个特性,其中涉及进程、php windows源码下载线程、协程和Actor模型。多进程和多线程通过共享内存通信,但存在资源竞争问题,而Actor模型通过通信来解耦,提高开发效率。 Actor模型在Skynet中扮演关键角色。它由隔离的环境(通过Lua虚拟机)、消息队列和回调函数构成。在skynet.lua中,可以创建actor,而在launcher.lua的command.LAUNCH函数中,会创建新的lua环境和消息队列,设置回调函数以驱动actor的执行。actor的消息类型包括actor间通信、网络消息和定时消息,每种都有其特定的发送和处理方式。 Actor调度是工作线程从全局队列中处理actor消息的过程,工作线程数量根据CPU核心数设置,遵循特定的权重规则以避免消息饥饿。在并发场景下,Skynet通过时间轮管理定时任务,确保高效执行。 然而,Actor模型的使用并非无懈可击,加锁机制是其中一项挑战。对于Actor的同步和互斥,需要正确处理读写锁等不同类型的锁,确保在并发环境下的数据一致性。 尽管存在这些问题,Skynet凭借其高效的并发管理和轻量级设计,在实际应用中表现出色。如果你对C++后端开发有更高追求,学习和提升资料可以参考C/C++后端开发/架构师的学习资源,加入学习交流群获取更多信息。手把手教你从零跑一个Skynet,详细教程,含案例讲解
手把手教你从零搭建Skynet:详细教程及案例详解
Skynet,作为一款轻量级的网络游戏框架,它在多个领域中也大显身手。让我们开始一段实践学习之旅,首先,确保你的开发环境是Linux或MacOS,这里以Ubuntu虚拟机为例。
1. Ubuntu系统安装
为了运行Skynet,你需要下载Ubuntu的ISO镜像文件,可以从多个官方镜像站点选择,比如网易开源镜像、阿里开源镜像等。以Ubuntu ..7为例,下载完成后,安装VirtualBox虚拟机软件,它是轻量级且免费的选项。
2. VirtualBox设置
在VirtualBox中创建一个新的Ubuntu虚拟机,分配2GB内存和GB硬盘空间。安装过程中,你需要选择Skynet安装镜像,启动后开始系统安装。
3. Skynet源码下载与编译
通过git下载Skynet源码,安装必要的工具如autoconf和gcc。确保安装成功后,下载源码并配置环境。
4. 运行Skynet案例
在终端中,编译Skynet源码并启动服务,可以看到服务成功启动。接着,创建客户端,验证服务功能,发送心跳包和交互。
5. 自定义配置与Demo
学习如何编写配置文件和目录结构,如创建一个game目录,配置节点和服务。写一个简单的Demo,如打工服务和主服务的交互,以及如何操作数据库。
6. 拓展与优化
了解网络模块,触屏手柄源码如何处理节点集群通信,以及数据库操作,比如MySQL的安装、启动和Skynet中的数据库操作。
通过以上步骤,你将一步步掌握Skynet的搭建和应用。从零开始,一步步实践,你将能够构建出自己的游戏服务器框架或者用于其他领域的轻量级应用。
skynet中actor模型
skynet,作为一款轻量级的服务器框架,其核心理念是基于actor模型,专注于提供基础组件和脚手架。框架下的lualib和lualib-src是主要的构建工具,它构建了服务器架构,包括实现了reactor并发网络库,支持大量连接的接入,并且融入了异步数据库驱动(使用lua数据结构),以简化数据库操作。
安装skynet需要预先安装必要的依赖,或者直接下载源代码进行编译。skynet采用多核并发编程,包括进程、线程、协程和actor模型。多进程和线程通过共享内存通信,但存在资源竞争问题,skynet倾向于使用自旋锁来减少切换。actor模型通过消息通信实现数据共享,降低模块间的耦合,便于快速开发和优化。
skynet的actor模型由环境隔离、消息队列和回调函数构成,其中lua虚拟机实现隔离环境,消息队列管理消息顺序,回调函数负责处理和执行消息。在skynet中,创建actor涉及lua虚拟机、消息队列和回调函数的设置,具体函数可以在源码中查找。
运行actor时,消息会被从消息队列中取出并分发给回调函数,这涉及到skynet_mq_pop和dispatch_message等函数。actor的消息类型包括actor间通信、网络消息和定时消息。网络消息通过fd与actor绑定,定时消息通过时间轮调度。
工作线程负责调度actor的消息,遵循特定规则,确保消息队列的高效处理。演员锁问题需要考虑自旋锁的使用,以减少核心切换,同时利用条件变量和互斥锁管理线程的唤醒和休眠。总的来说,skynet在actor设计上注重性能和并发处理,适合多核环境,并提供了一种解耦的开发模式。
用Java实现Actor模型(模仿Skynet)
Actor模型是种常见的并发模型,与共享内存(同步锁)不同,它将程序划分为多个独立计算单元——Actor,每个Actor独立管理资源,不同Actor间通过消息传递交互。优势在于全异步执行,避免线程阻塞,提高CPU使用率,且无需考虑加锁和线程同步问题。
Actor模型在业界应用广泛,如游戏服务器框架Skynet、编程语言Erlang。Java下应用较少,知名的是基于Scala的Akka。但Actor模型并非万能,异步编程需编写更多回调代码,原本一步拆成多步,增加代码复杂度。
本文以学习研究目的ghost源码编译教程,使用Java实现简化Actor模型,功能模仿Skynet,包括:
完整源代码在GitHub可获取。关键代码与设计思路如下。
Actor是Actor模型核心概念,每个Actor管理资源,与其它Actor通过Message通信。
Actor由单线程驱动,类为抽象,处理消息的`handleMessage`方法需具体类重载实现。
Node代表独立Java进程,有自己的IP和端口,内部可运行多个Actor。Node间通过异步网络通信发送消息,Actor仅绑定一个Node。
ActorSystem是Actor管理系统,外部调用API入口,提供创建Actor、发送消息、休眠等功能。
ActorSystem初始化分为三步:读取集群配置、绑定Node、初始化自身,包括定时器和Netty服务端初始化。Node间通信异步,客户端和服务端使用Netty做。
创建Actor调用`newActor`方法,指定具体类和Actor名,确保Node内唯一。创建时绑定Node,调用`start`方法初始化,将名与Actor映射。
发送消息核心是`send`方法,指定目标Node、Actor名、命令名和参数,可封装为Message。
`currThreadActor`变量记录当前线程的Actor,简化消息发送时指定来源信息。若目标与来源相同,直接添加消息;否则,通过网络通信实现,使用Netty做序列化和反序列化。
休眠Actor通过`sleep`方法实现,指定毫秒数、回调命令及参数。底层通过定时任务实现阻塞。
ActorSystem使用定时器管理定时任务,添加新任务后轮询处理。考虑优化避免多线程同时创建Channel。
程序示例在test包内,启动Node后打印日志,验证Actor模型工作方式。
总结,本文展示了使用Java实现简化Actor模型的完整流程,实现基础功能。造轮子旨在深入理解Actor模型,语言只是实现工具。相信本文有助于读者深入理解Actor模型。
万字攻略|云风Skynet源码剖析及原理实战(一)
云风的Skynet源码详解和实战指南 Skynet是一款基于C和lua的轻量级并发框架,专为在线游戏服务器设计,基于TrinityCore的魔兽后端开源框架。它采用单进程多线程的Actor模型,确保了高效的消息驱动和资源管理。1. Skynet简介
Skynet以消息驱动为核心,每个服务都有独立的消息队列,通过回调函数处理。建议使用单节点以减少节点间通信成本,避免不必要的通讯开销。框架要求发送者分配内存并处理接收方的清理,以减少数据复制。 核心功能是启动和管理符合规范的C模块,给每个模块分配一个唯一的handle,实现服务间的通信,模块在无消息时处于挂起状态,避免CPU资源浪费。2. Skynet原理与实现
Skynet的消息队列设计模仿Actor模型,每个服务拥有私有的MailBox。消息通过worker线程从全局队列中调度,以线程权重和回调函数进行消费。服务模块需提供特定接口,如xxx_create、xxx_init等,以供框架调用。 服务的生命周期管理通过skynet_context,它是Skynet的核心结构,支持指令操作,如启动、退出和删除服务。snlua沙盒服务是lua服务的入口,lua服务在独立的沙盒环境中运行,初始化时加载lua脚本和设置环境变量。3. 搭建与应用
在Ubuntu上,可通过git获取Skynet源代码,编译和运行服务器,客户端通过lua脚本与服务交互。编写和配置服务API,包括lua脚本和配置文件,以及服务启动和错误处理。4. API与服务类型
- 普通服务支持创建多个实例,通过唯一的id区分。
- 全局唯一服务类似单例,每个节点仅创建一次,可用uniqueservice接口检测和创建。
- 多节点环境中的全局服务有特定规则,如全节点服务的查询。
5. 服务别名与同步
- 服务可以通过别名标识,本地别名和全局别名区分,注册和查询接口灵活。
- 服务调度可通过sleep和fork控制,协程机制支持简单同步和定时器使用。
6. 错误处理与资源管理
- 错误处理通过lua的assert和error进行,可以选择pcall来避免中断协程。
- 获取和管理时间,保持良好的错误处理和资源使用习惯。
安卓开发用什么软件?
安卓手机软件都是用什么软件开发的?
一般在用eclipse编写或者AndroidStudio。这两个软件都可以写安卓软件。安卓的应用程序是用JAVA语言开发的,而安卓的底层核心使用的是Linux内核,所以底层开发是用C来做。
希望我的回答可以帮助你,望采纳!
安卓系统的APP开发工具主要用到哪些
PP开发时一向比较复杂的工程,其开发周期长、开发难度大,成为不少企业面临的难题。目前市场上APP开发的主要是面向IOS和Android两大产品开发的,因为两个产品软件的性质不同,在进行APP开发时用到的工具也不一样。本文重点将Android产品的APP开发工具做一下简单的介绍。目前,android系统APP的开发工具主要有两种:一种是myeclipse,它是基于企业级工作平台,不过这个是收费的;还有一款免费的开源开发工具是eclipe,eclipe是基于Java平台。广州APP开发公司
别样网络分析现在企业都是采用eclipe这种软件开发。下面我们将这两款软件分别介绍一下:一、在结构上,MyEclipse的特征可以被分为7类:1.JavaEE模型2.WEB开发工具3.EJB开发工具4.应用程序服务器的连接器5.JavaEE项目部署服务6.数据库服务7.MyEclipse整合帮助二、eclipse特点Eclipse
是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse
附带了一个标准的插件集,包括Java开发工具(Java
Development
Kit,JDK)。对于以上每一种功能上的类别,简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse5.5以前版本需先安装Eclipse。MyEclipse5.5以后版本安装时不需安装Eclipse。广州APP开发公司
别样网络分析他们主要的区别是:Myeclipse的核心就是eclipse,只不过Myeclipse在此基础上增加了许多的插件,使用起来更加的方便。但是Myeclipse消耗的资源很多,在使用的时候一定要做好优化工作。在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。APP开发公司:
安卓手机的软件听说是java开发的,我想知道的开发的是cs软件还是BS的。求大神详解!!android开发的主流是java,。CS、BS一般指架构,java大多用于BS的。学习java推荐千锋教育。千锋教育十一年来,千锋以政策为引导,不断完善国内特色现代职业教育体系建设,充分发挥教研师资队伍使命,构建品质教育。
Java开发的安卓软件具备的优势:
1、Java语言是发展最快的程序语言,具有面向对象的特点,比较通俗易懂;
2、Java语言的显著特点就是简单,继承了C++语言的先进精华,是计算程序语言发展的一大进步;
3、Java语言拥有独立的体系结构,可以不受限制,随意在任何系统当中运行,所以体系结构的中立决定了Java语言可以在不同的计算机结构中得以运行。使用Java语言开发的不同程序在不同结构的计算机显示的语言位数却是统一的。
想要了解更多java开发的相关信息,推荐咨询千锋教育。千锋Java现已拥有成熟独立的项目库,项目均1:1引进大厂项目,授课采用CREA项目研发模型,即Cooperation、Research、Exercise、Alliance,以项目促进高质量教学。多场景,多学科联动为学员的技能实战提供高度还原的真实演练场,充分赋能学员简历价值,打造企业直聘班,得到广大学员一致认可。
安卓软件怎么开发,安卓用什么开发1.安卓手机开发app的方法如下:第一,制作一款APP,必须要有相关的idea。
2.通过那些idea来进行APP的主要功能设计以及大概界面构思和设计。
3.大功能模块代码编写以及大概的界面模块编写。
4.在界面模块编写之前,开发者可以在模拟器做大的功能开发。
5.把大概的界面和功能连接后,app的大致demo就出来了。
6.第三在app完成后,加入appicon等等UI元素。
7.反复测试无错误后上传。
8.之后大概要花7到天来等候审批。
安卓的游戏制作用什么软件?首先要会计算机语言,比如Java编程语言就可以开发安卓游戏。
还会设计游戏引擎,比如AndEngine的开源游戏引擎和Box2D物理引擎等。
还有软件开发工具,比如Android软件开发工具包AndroidSDK。
另外图像工具,游戏离不开大量的图像AdobeIllustrator或其他专业工具。
扩展资料:安卓APK开发环境
Android是一个基于Java的开发环境,Google也在API文档的书写和样例的提供上做了很出色的工作。
下载并安装android的SDK[软件开发套件],这套SDK主要包括有核心库文件,一个模拟器,开发工具和一些示范的样例文件。推荐使用Eclipse和androideclipse扩展。
如果只是使用android,EclipseIDE就已经足够了,但如果是第一次开发Java应用,下载完整的JavaSE开发工具(JDK)它包括签发应用程序所需要的工具。
百度百科-apk
安卓开发用什么软件好问题一:安卓开发利用什么软件?想要搞安卓的开发,首先搭载java的平台,去下载JDK,然后去下载eclipse,以后的安卓开发经常用到eclipse,这个软件很人性化,你用之后就知道,之后再去下载SDK,安装JDK的时候要有耐性,这个很费时的。至于教程什么的看书吧,或者网上有很多的视频教学,我比较喜欢看视频,我觉得这比看书接受的快
问题二:android是用什么软件开发的?这个因人而异了,如果你的理论基础很扎实,或者有网络上的资源视频知识讲解,就不需要买书。一些小项目源码之类的,像eoe,安卓巴士,CSDN,git上面都有。一般讲解安卓的书都是前面理论,后面配几个小项目再加张有源码的光盘,讲的都不是很深入
问题三:想学习安卓app的开发,但是不知道哪个开发工具好用?分看你要学到哪种深度。从底层开始,还是应该先学语言,软件是次要的,语言是根本。
其实在我看来,说句不中听的话,咱们中国人,不适合学软件开发。从语言学分析,语言的构造影响人的思维方式,中国人是聪明,可是计算机语言的语法是硬性的,而且是英文。从JAVA来说,常用的单词和表达式就够你记一阵子了。而且起初是枯燥的……
我不是泼你冷水啊。
你要是想学的话,先学半年的JAVA吧,开发软件用eclipse。然后再去搞H5。只要你把语言精通了,你后期用什么软件做开发都OK。
问题四:现在开发android用什么工具android是基于linux的,所以在ubuntu下是最好的。当然windows下面也是可以的。但是android的内核是基于linux的,并且通过终端进行各种操作,非常强大,也比cmd方便。我现在自己开发的环境是这样的:
ubuntu系统,以前我是windows然后安装了ubuntu的虚拟机。android大部分的开发都是中间层到顶层的应用开发,所以基本上是java开发。表配如下:
1。eclipse是开发java必备,也是android必备。(当然前提是先安装JDK1.6)
2。下载android的SDK和ADT。这是android的开发必须的工具,adb、ddms、mksdcard、aapt,debug必备
A。安装完eclipse后,通过help=〉installnewsoftware。。把ADT安装好
B。然后window=preference设置好SDK的路径即可
如果用到C开发的话,可以安装一下啊CDT
现在可以通过AVDmanager安装一下你想在哪个平台下的api,比如:android2.3.4,就可以建一个2.3.4的emulator,把模拟器跑起来。通过adbddms等工具察看、开发了。为了方便,把adb的路径加到环境变量里。
问题五:android开发都用什么软件blogs/skynet/archive////
问题六:用java做安卓开发用什么软件android开发环境需要以下工具:
JDK,JavaDevelopmentKit.因为android应用层的程序是使用java语言编写的,所以JDK是必备的工具;
ADK,AndroidDevelopmentKit.这个就不用解释了吧;
IDE,integrateddevelopmentenvironment.当然不用IDE也一样可以编写代码,但是使用了IDE,编写代码的效果就是不一样。推荐使用Eclipse。
ADT,AndroidDevelopmentTools.这是Google公司为Eclipse开发的一个插件,用于协助Android的开发。Eclipse+ADT是当前的最流行也是最好的组合!
以上就是android开发环境必备的工具。
问题七:开发安卓APP用什么软件比较好?安卓android是基于linux的,所以在ubuntu下是最好的。当然windows下面也是可以的。但是android的内核是基于linux的,并且通过终端进行各种操作,非常强大,也比cmd方便。大致开发的环境是这样的:
ubuntu系统,以前是windows然后安装了ubuntu的虚拟机。android大部分的开发都是中间层到顶层的应用开发,所以基本上是java开发。表配如下:
1。eclipse是开发java必备,也是android必备,androidSDK也是必备的(当然前提是先安装JDK1.6)
2。下载android的SDK和ADT。这是android的开发必须的工具,adb、ddms、mksdcard、aapt,debug必备
A。安装完eclipse后,通过help=〉installnewsoftware。。把ADT安装好
B。然后window=preference设置好SDK的路径即可
如果用到C开发的话,可以安装一下CDT
现在可以通过AVDmanager安装一下自己想在哪个平台下的api,比如:android2.3.4,就可以建一个2.3.4的emulator,把模拟器跑起来。通过adbddms等工具察看、开发了。为了方便,把adb的路径加到环境变量里。
(转自百度用户:沐沐)
问题八:年安卓开发用什么软件来开发是主流?主流自然还是eclipse
但androidstudio是官方的支持自然足够强大很多人转向这个
问题九:安卓开发需要用什么工具androiddevelopertool
这是一个安卓集成环境,直接下载就可以用,哦对了,前提是你要安装java的jdk。
………………………………………………………………………………
如果对android感兴趣,看看一个中专生怎么自学android到找到工作。
我是一名中专生,在学校里读的是计算机专业,但是由于学校不好大部分同学都不爱学习来这里几乎大部分都是在混日子的,虽然我中考的成绩不差,但是因为家里穷考虑到以后没钱读大学我毅然来到这里,虽然是中专,但是我相信只有努力以后也会出头,但是我被这里的学习气氛给感染了,慢慢的变得不喜欢学习,后来还经常逃课,三年时间里就浑浑噩噩的过了,到了毕业,由于我学历低和打了三年的酱油什么也没学到,后来只能到电脑城里工作一个月辛辛苦苦的工作,只能赚到几百元,每次想起农村里的爸妈辛辛苦苦的赚钱给我读书最后我白白浪费了他们的血汗钱我感到很痛苦很内疚,经常晚上坐在天台上,眼泪不自然地流下了,难道自己一辈子都这样了吗,一次偶然的机会我在网上看到了一段新闻说安卓现在特别火有一年工作已经的工资可以达到元左右就算没工作经验起薪也有元,元对我来说简直就是个天文数字,于是我决定学习安卓,后来我到书店找了一些安卓的书但是由于基础太差,很多都看不明白,网上看到可以报培训班都是几乎每所都要上万大洋,对于我一个一个月只能赚几百元的中专生来说简直是个天文数字,后来在IT学习联盟这个网站看到了一套安卓视频叫(喜欢《安卓就业班》的可以复制sina.lt/brxC粘贴浏览器地址栏按回车键即打开)。价格还挺合理的。觉得内容挺不错的于是我决定买下来,我想既然我看书看不明白,看视频应该容易看明白吧,自从我把视频买下来后就就天天看,因为自己基础太差了,所以每天至少学习5个小时以上,那段日子真的很辛苦但又很充实,觉得我的人生最有意义的时间段。我拿到光碟后首先跟着他要求的学习顺序学习(因为他已经偏好了学习的顺序)从第一块开始到第十七块,首先学的是JAVA,是一个培训视频,总共十几G,但老师幽默风趣而又轻松的课堂教课,使我发现原来学习JAVA并不是一件很难的事情,但我的基础太差了有些地方还是不容易看懂,于是有些地方重复看了两,三篇,甚至四,五篇,大概这样过了一个月我就把JAVA给学会了,这个月因为要上班所以经常学到晚上1,2点早上6点多就起床,星期六,星期天的话就从早上看到晚上,所以有段时间眼睛经常通红通红的,但是我知道天道酬勤这个成语,你努力付出就一定得到回报的,于是我坚持了下来,到了第二阶段,学习android了,他有基础篇和深入篇,基础篇比较容易,深入篇的话还是有点难度的,但是我觉得JAVA学好了,android并不难学,学起来还觉得挺容易的,心里不由自主的笑了,觉得是不是我的付出有了回报,到了第三阶段也是最难的了,是基于linux的嵌入式,因为android的是由linux底层开发的再加上界面是JAVA,所以学好linux的嵌入式也比较重要(如果你以后想成为android内核移植这个方向走的非常重要,工资可是很高的哦,如果你只想做界面的话了解一下也不错),他首先从C语言开始教,然后到linux嵌入式,我觉得这部分太难理解了,很多都是硬着头皮看完的,因为有不地方看不明白,断断续续的来到了第四阶段项目阶段这里总共有个大项目,一开的时候还是跟不上老师的脚步但是后来就慢慢的跟上了,我觉得项目很重要,他把之前的所有的......
问题十:Android软件开发用什么语言?Javascript精通还做什么android阿汗.