Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Android开发实践:常用NDK命令行参数

Android开发实践:常用NDK命令行参数

Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别、加载和运行的库或者应用程序。默认情况下,使用NDK编译c/c++代码,需要将该代码放置到任一个Android应用工程的jni目录下,然后编写相应的Android.mk文件,并执行ndk-build命令完成编译。其实你也是可以在...
Android开发实践:在任意目录执行NDK编译

Android开发实践:在任意目录执行NDK编译

前面一篇文章简单地介绍了Android ndk编译的一些命令行参数(http://www.linuxidc.com/Linux/2014-12/110167.htm),一般情况下,我们都是在Android工程的jni目录下编译本地代码,或许用不到那些参数,但是如果你需要将一些第三方C/C++库,如ffmpeg、libjpeg等,编译为Android可使用的静态库/动态库,那么,你就得尝试在这些第三方库的源码目录中,配置Android的编译环境,使用NDK提...
Android开发实践:Android交叉编译工具链的使用

Android开发实践:Android交叉编译工具链的使用

前面2篇文章分别介绍了Android NDK编译的命令行参数,以及如何在任意目录使用Android.mk来编译本地c/c++代码,Andriod.mk和ndk-build只不过是Android官方提供了一套封装过的Android交叉编译环境而已,其实,你可以不用它,而直接通过传统的Makefile文件来编译你的c/c++代码的,本文即介绍如何直接通过传统的Makefile文件来编译可用于Android平台的库文件。http://www.linuxidc.c...
如何创建和使用Python CGI脚本

如何创建和使用Python CGI脚本

你是否想使用Python语言创建一个网页,或者处理用户从web表单输入的数据?这些任务可以通过Python CGI(公用网关接口)脚本以及一个Apache web服务器实现。当用户请求一个指定URL或者和网页交互(比如点击""提交"按钮)的时候,CGI脚本就会被web服务器启用。CGI脚本调用执行完毕后,它的输出结果就会被web服务器用来创建显示给用户的网页。配置Apache web服务器,让其能运行CGI脚本在这个教程里,我们假设Apache web服务...
为什么 C++ 成员函数指针是 16 字节宽的

为什么 C++ 成员函数指针是 16 字节宽的

当提及指针时,我们通常认为它是可以用void * 指针表示的在x86_64架构上占用8字节的东西。例如, 维基百科有一篇关于x86_64的文章中这样写道:Pushes and pops on the stack are always in 8-byte strides, and pointers are 8 bytes wide.从CPU的角度来看,指针就只是一个内存地址,并且x86_64中的所有内存地址用64位表示,所以8字节的假设是成立的。其实可以简单...
Android仿微信录音功能,自定义控件的设计技巧

Android仿微信录音功能,自定义控件的设计技巧

讲解一个比较通用的录音控件实现方法与设计技巧最近由于需要做一个录音功能(/嘘 悄悄透露一下,千万别告诉红薯,就是新版本的OSC客户端噢),起初打算采用仿微信的录音方式,最后又改成了QQ的录音方式,之前的微信录音控件也就白写了[大哭]。之前有很多朋友在问我自定义控件应该怎么学习,遂正好拿出来讲讲喽,没来得及截效果图,大家就自己脑补一下微信发语音时的样子吧。所谓自定义控件其实就是由于系统SDK无法完成需要的功能时,通过自己扩展系统组件达到完成所需功能做出的控件...
浅谈 C++ 中的 new/delete 和 new[]/delete[]

浅谈 C++ 中的 new/delete 和 new[]/delete[]

在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢?new 和 delete 是函数吗?new [] 和 delete [] 又是什么?什么时候用它们?你知道 operator new 和 operator delete 吗?为什么 new [] 出来的数组有时可以用 delete 释放有时又不行?…如果你对这些问题都有疑问的话,不妨看看我这篇文章。new 和 delete 到底是什么?如果...
C 语言中 setjmp 和 longjmp

C 语言中 setjmp 和 longjmp

在 C 语言中,我们不能使用goto语句来跳转到另一个函数中的某个label处;但提供了两个函数——setjmp和longjmp来完成这种类型的分支跳转。后面我们会看到这两个函数在处理异常上面的非常有用。setjmp 和 longjmp 使用方法我们都知道要想在一个函数内进行跳转,可以使用goto语句(不知怎么该语句在中国学生眼中就是臭名昭著,几乎所有国内教材都一刀切地教大家尽量不要使用它,但在我看来,这根本不是语言的问题,而是使用...
Linux 内核进程管理之进程ID

Linux 内核进程管理之进程ID

Linux 内核使用task_struct数据结构来关联所有与进程有关的数据和结构,Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的,是内核中最重要的数据结构之一。该数据结构在内核文件include/linux/sched.h中定义,在Linux 3.8 的内核中,该数据结构足足有 380 行之多,在这里我不可能逐项去描述其表示的含义,本篇文章只关注该数据结构如何来组织和管理进程ID的。进程ID类型要想了解内核如何来组织和管理进程ID...
<< 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 >>