theos初探:ios越狱开发教程

开发环境搭建回顾

现在已经在windows上安装好了theos了。在上一篇中都已经讲了,开发环境主要部件就是:

1.theos,主要包含了使用make时的makefile模板文件、包含了各种库和框架的sdks

2.llvm,包含了clang在内的编译器

 

所以如果出错了,首先看自己的环境搭建好了没有,然后看看程序。其实理论上使用llvm和sdk就可以进行ios开发了,但是由于作者没有学习过make和objective-c以及llvm之类的,所以基础不行,那么在这种情况下使用theos,就像在ide里编程一样轻松简单(就像作者这样基础的人都是可以轻松写程序的:)。

 


 

 

开始使用THEOS

本篇都以hello world程序进行示范

控制台程序

1.创建project

$THEOS/bin/nic.pl

 

 

这里选4,后面根据提示完成。

可以看到完成后在生成了hello这个project的文件,下面有三个文件,分别是Makefile,main.mm和theos

  • Makefile,make的时候用到的。注意的就是当你写了自己的文件后要把文件加入到里面,否则会报错(后面会演示)
  • main.mm,就是main函数所在的文件
  • theos,这是一个软连接(没用过linux的可以自己百度一下)到你的theos所在的目录,使用起来和theos目录一样(突然想起了虫洞)

2.创建类

我打算使用一个Author类来输出hello world;Author类有一个成员words和一个方法say

  1)mkdir Author,创建一个存放的文件夹

  2)vim Author/Author.h,创建头文件

  

  3)vim Author/Author.m,创建对应的实现文件

  

  4)vim Makefile,修改makefile文件,添加Author/Author.m到如图位置

  

3.make

如果没有出意外就会在project下面生成一个obj文件夹

下面有很多编译过程产生的文件,hello是最终生成的文件。

运行结果正确。

那么控制台hello world就成功了


 

应用程序

上面我们写了一个控制台程序,这个只能在终端里看到,所以对于很多人来说觉得没什么用,那么下面我们将创建一个应用程序,就是一个可以显示到桌面的app!

1.创建项目

创建的时候选择1就是application。

后面基本都一样。项目下面出现了很多文件,相当于已经给搭建好了开发的框架,但是我现在还没有深入研究,所以现在暂时使用UIKit.h这个提供的东西。

2.重写main.m

#import <UIKit/UIKit.h>

@interface HelloApp : UIApplication {
}

@end

@implementation HelloApp

- (void) applicationDidFinishLaunching: (id) unused
{
    UIAlertView *helloWorldAlert = [[UIAlertView alloc] initWithTitle:@"App" message:@"Hello, World!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [helloWorldAlert show];
}

@end

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [NSAutoreleasePool new];
    UIApplicationMain(argc, argv,  @"HelloApp", @"HelloApp");
    [pool release];
    return 0;
}

 

这里就是简单的实现了一个UIApplication类,在applicationDidFinishLaunching方法中创建并显示了一个UIAlertView。

 

3.make

输入make package命令将在项目下面产生一个.deb文件,通过dpkg -i *.deb就可以安装这个程序了。

 

然后手机respring之后就可以在手机上看到图标了。当然这个图标是空白的。

点击图标后就会弹出一个alertView,显示hello World了!


总结

以上就是我使用theos进行了ios上的helloworld程序开发。

可以看到,尽管我们没有mac,没有那么多的编程经验,但是利用theos提供的简单环境,一个make指令就可以完成所有的编译,真的就像在ide里写程序一样简单呢!

在后面的文章中我将使用theos编写一些更复杂的application

posted @ 2015-05-14 12:05  文宁  阅读(2341)  评论(0编辑  收藏  举报