无节操非程序猿

莫催稿,催稿也不交

[翻译] Android O 中的 seccomp 过滤器

在 Android 的设备中,强制执行 Android 安全模式的重任交由内核承担。由于安全团队已努力加强 Android 的用户空间,并隔离和削弱进程的权限。因此内核已成为更多安全攻击的焦点。系统调用是攻击者攻击内核的常用方式。所有 Android 软件都使用系统调用(简写为 syscall)与 Linux 内核通信。内核提供许多基于设备和 SOC 的系统调用,让用户空间的进程(包括应用程序)直接与内核交互。所有应用都依赖此机制,通过唯一的系统调用来检索访问对应的行为,例如打开文件或发送一条

再谈 OpenSSL 的跨平台

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

NDK 线程的一些坑与解决

自从换了某个版本的 NDK 后,就一直坑不断,踩了几天之后,发现在线程部分坑已然变多,必须好好解决一下了首先讲一下线程的问题,目前建议将所有可能会耗时的函数都放进线程,原因是现在的 NDK 似乎可能好像也许会在意料不到的地方 ANR,比如以下代码:clsContext := env^^.FindClass(env, 'android/content/Context'); getServiceContet := env^^.Get

使用 Idea / Android Studio 开发 CodeTyphon 项目

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

解决 iOS 中多个 CodeTyphon 静态库编译冲突

使用 CodeTyphon 开发 iOS 的静态库时,如果是单一库,不会出现问题,而当多个静态库同时被链接时,情况就不太妙了,会出现 duplicate symbols的异常,而查代码下来,却又找不到重复之处,这是怎么回事呢?其实根本原因是,CodeTyphon 在链接 .a 时,会把一些系统固有的东西一起链接上,也就是类似于 classes.o,sysutils.o 这类的单元有多份,因此而产生的冲突。那么要解决冲突,最好的办法就是让这些通用的东西只存在一份。所以

自定义 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,从而改变编译预处理语句的执行结果。系统内已经

Powered By Z-BlogPHP 1.5.1 Zero

Copyright Rarnu 2017. All Rights Reserved.