无节操非程序猿

莫催稿,催稿也不交

再谈 OpenSSL 的跨平台

出于项目需要,再一次的拿起 OpenSSL,原本以为按照老方法可以方便的移植,但是在 Mac 最新版本 + NDK 最新版本 + iOS SDK 10.3 + OpenSSL 1.1.0e 的环境下,似乎老的移植方法已经不那么好用了。微店大神区长之前给出了移植的方案(大力插此处),很可惜的,这个方案并不完美工作,还是有一些工作需要自己来做。移植到 Android直接上脚本,其中需要注意的是,克隆出来的 toolchain 我是按架构存放了不同的版本,因为编译出来的产物,还可能

使用 Idea / Android Studio 开发 CodeTyphon 项目

自从我司的伙伴们开始使用 CodeTyphon 进行开发后,已经不知有多少人吐槽了 CodeTyphon 自带 IDE 的难用,虽然我已经习惯了,然而还是有不少人偏爱 Jetbrains 全家桶。所以这篇就是告诉大家怎么用 Idea 或 Android Studio 来开发 CodeTyphon 项目。只需要几步简单的配置就行了,当然这篇针对的平台是 Mac 或 Linux,使用 Windows 的用户请勿随意模仿。下面跟我走!Step 1:安装 CodeTyphon这一步就不多说了,请移步至这

自定义 CodeTyphon 的包和组件

CodeTyphon 提供了海量的组件包,它们对开发提供了极大的便利,也是 CodeTyphon 易于上手的一大原因。在实际开发中,也会经常遇到内置组件无法满足需求的情况,直接在代码中进行修改固然是一个办法,但是考虑到代码的复用性,很多时候我们都会试图建立一个自定义的包,把修改过的组件放置在内,以便让其他的开发者获得便利。CodeTyphon 之所以发展到现在会拥有如此多的组件,与开源社区的贡献密不可分,本章我们即来看一下如何建立一个自定义的包。还是以之前的员工管理工具为例,我们已经拥有了一个原

CodeTyphon 实现访问数据服务

目前绝大多数应用程序都具备访问服务器的能力,不论是请求远程给予数据支持,又或者是单纯的检查新版本,都需要通过客户端来向服务器端发起请求,并得到服务端的回应。可以这么说,在互联网的时代,完全不依赖网络的应用程序已经很难很难生存,几乎已经绝迹了。之前我们已经掌握了如何来开发一个服务器端应用,以及如何将它部署到生产环境中。现在是时候让服务端与客户端进行数据交互了,让我们来看一下如何让客户端程序获取服务器端的数据,将员工管理工具改成具有网络交互属性的程序。『建立数据服务器』还是像以前一样,先新建一个 H

部署 CodeTyphon 服务器程序到容器

先前的文章讲述了使用 CodeTyphon 来开发一个 HTTP 服务器的方法,同时也指出了一些不足之外,毕竟服务器端程序需要可靠的容器来管理,而不是独立运行。本篇即讲述如何将程序部署到 Apache 和 Nginx 容器中。『切换服务器类型』还是沿用上一章内开发的独立HTTP服务器程序,我们将其修改为FastCGI程序,CodeTyphon已经考虑到了开发者可能在多种程序类型之间切换,因此有了以下切换方法:可以看到,这样的切换是非常简单的,修改引用,并且注释掉不必要的代码即可。随后编译程序,将

CodeTyphon 服务器端应用开发

CodeTyphon 提供了强大的 fpweb 框架,可以方便的实现 Web 模块,从而提供了支持服务器端开发的能力。该框架允许开发者轻松的构建出 CGI,FastCGI,Apache Module,独立 HTTP 服务器,爬虫,甚至是嵌入式服务器等。生成的程序可以独立运行,也可被 Apache、Nginx 等进行配置管理。由于 CodeTyphon 在跨平台方面显得过于强大,大部分开发者并不重视 CodeTyphon 在服务器端的开发能力,导致了服务器端相关的内容无人研究、资料缺失,编写本章时

跨平台的平台代码差异

CodeTyphon 作为一款本身就支持跨平台的开发工具,在原则上并不需要关注具体平台的特性,完全以 CodeTyphon 的组件库进行开发即可。而在实际开发中,由于部分特殊情况的存在,我们还是必须对平台的特殊性进行处理。特别典型的是路径分隔符,在Windows下采用『\』符号,而在其他系统中均采用『/』符号,这就让我们必须针对这一分隔符作出处理:此处的WINDOWS字样即是系统内部定义的环境变量,在不同的编译条件下,它将会被置为True或False,从而改变编译预处理语句的执行结果。系统内已经

解决 SQLite 在 NDK 中的直接使用

这个问题的起因是,某项目需要在 NDK 中使用 SQLite,并且这个库同时也需要在 iOS 端使用。一开始的开发均很顺利,已有文章予以总结。但是当程序运行到 Android N 上时,情况就不对了,整个程序直接崩溃,报的错误是 Can not load dynamic library "libsqlite.so"。保险起见,我检查了一下 /system/lib 和 /system/lib64,确保了 libsqlite.so 是存在的。那么问题就变成了,无法调用这个存在的库

CodeTyphon 实现动态库

动态库,在 Linux 下为.so( Shared Object)文件,在 Mac 下为.dylib(Dynamic Library)文件,在 Windows 下为.dll(Dynamic Link Library)文件。它实现了共享函数的一种方式,包含了可由多个程序同时使用的代码和数据。动态库使进程有能力调用不属于该进程的可执行代码函数,使用动态库有助于共享数据和资源,多个应用程序可以同时访问内存中单个动态库副本的内容。使用动态库可以更容易的将更新应用程序于各个模块,而不是更新整个程序,不会影

使用 CodeTyphon 进行调试

CodeTyphon集成了调试器,这是集成开发环境的一个重要特性,它可以使开发者方便的设置断点,监视变量,检查对象等。 在程序运行时,调试器可以快速的获悉出程序内发生了什么,可以帮助开发者找到程序内的错误。对于 Mac 下默认调试器不起作用的问题,可以参考这篇文章解决:点击进入简单的看一下菜单内的主要功能:① Compile,编译有改动的单元文件,并重新链接这些改动过的文件;② Build,编译所有单元文件,并且对所有文件做重新链接;③ Run,运行编译后的程序,如果有单元改动,则先进行Comp

Powered By Z-BlogPHP 1.5.1 Zero

Copyright Rarnu 2017. All Rights Reserved.