源代码

Android 源代码结构

旧城冷巷雨未停 提交于 2020-01-20 07:09:34
简介   在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试。但是,如果目标版本的SDK没有关联对应版本的源代码的话,就会提示你找不到源代码。   图:找不到Android源码的提示     我们都知道Android系统是一个开源工程,在网上可以下载到源代码。一般在网上搜索一下,就会找到各种下载源代码的方法,比如使用Git和Repo,android源代码下载的网址是 http://android.git.kernel.org/ 。关于利用Git下载android源代码的方法,我就不再赘述了,因为网上的方法很多,这里给出一个参考链接 Windows平台下Android源码的下载 。   如果你跟我一样是初学者,相信看了上面的文章,你就知道如何使用Git下载android源码了。但是,看着 http://android.git.kernel.org/ 站点下的各种目录和文件,相信你也会跟我一样傻眼,不知道那个目录下的文件对应是什么代码,想找到自己所需要的东西都比较难了。所以这里给大家介绍一下android源代码的结构,如果发现文章有错误之处,还请各位童鞋轻点砸砖!   图: http://android.git.kernel.org/ 下纷繁复杂的文件     认识Android源代码结构之前

Android 源代码结构

放肆的年华 提交于 2020-01-20 06:46:27
简介   在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试。但是,如果目标版本的SDK没有关联对应版本的源代码的话,就会提示你找不到源代码。   图:找不到Android源码的提示     我们都知道Android系统是一个开源工程,在网上可以下载到源代码。一般在网上搜索一下,就会找到各种下载源代码的方法,比如使用Git和Repo,android源代码下载的网址是 http://android.git.kernel.org/ 。关于利用Git下载android源代码的方法,我就不再赘述了,因为网上的方法很多,这里给出一个参考链接 Windows平台下Android源码的下载 。   如果你跟我一样是初学者,相信看了上面的文章,你就知道如何使用Git下载android源码了。但是,看着 http://android.git.kernel.org/ 站点下的各种目录和文件,相信你也会跟我一样傻眼,不知道那个目录下的文件对应是什么代码,想找到自己所需要的东西都比较难了。所以这里给大家介绍一下android源代码的结构,如果发现文章有错误之处,还请各位童鞋轻点砸砖!   图: http://android.git.kernel.org/ 下纷繁复杂的文件     认识Android源代码结构之前

串口调试助手,VB6.0开发

匆匆过客 提交于 2020-01-19 22:27:26
1、为什么要自己开发一个串口调试助手 通常我们都是:在网上直接下载一个串口助手,可执行文件,直接使用,并无法得到其源码,在此我们提供了一个VB6.0开发的串口助手: (1)让你极速掌握串口开发的要点; (2)提供源码,并且源代码中有详细注释; (3)极速开发出上位机,并与下位机(单片机)等通讯; (4)使用自己的串口助手,高大上 支持的功能: (1)支持串口设置:串口号,波特率,校验位,数据位,停止位 (2)支持字符格式发送和接收 (3)支持十六进制格式发送和接收 (4)支持将接收到的数据保存到文件 (6)支持通过文件载入发送的内容 (5)支持定时发送 (6)支持清除发送区和接收区 (7)支持发送和接收计数 2、安装vb6.0环境 下载资料中提供的Visual.Basic.6.0.with.SP6.ISO,解压,并安装 3、打开串口调试助手工程 下载 串口调试助手_VB源代码.rar,并解压,点击 工程1.vbp,即可打开工程 4、运行 (1)运行 点击工具栏上的三角按钮,即可运行 (2)插入usb转串口 插入电脑并安装了usb转串口驱动之后,就可以在设备管理中可以看到虚拟出来的串口,此时将串口的收发直接短接,将发送的数据直接接收回来: (3)测试收发数据 5、索取源代码 QQ:1850705939 微信:15001309967 来源: 51CTO 作者: 超级军长 链接:

几个预编译指令的用法

余生长醉 提交于 2020-01-18 21:38:35
转载: 痴 狼 While there is life there is hope http://www.cnblogs.com/Bolin/archive/2011/02/20/1959120.html 几个预编译指令的用法 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。 在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令: 指令 用途 # 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #ifndef 如果宏没有定义

那么多人选择Python,它的优缺点有哪些?

此生再无相见时 提交于 2020-01-18 14:50:40
  提及到目前最火的编程语言,Python可谓是非常受欢迎的,属于四大编程语言之一,近些年来Python的增长趋势也是非常明显的,很多人都将Python作为入门的语言,对于很多人来说都会选择学习Python。那么Python究竟有何魔力呢?它的优缺点有哪些?为大家介绍一下。   Python的优势:   1、简单易学:作为一门面向对象、解释型的脚本语言,Python同时也是一门功能强大完善的通用性语言,对比其他语言来说,Python要更加简单,上手非常容易。   2、免费开源:Python是自由开源源码软件之一,用户使用Python进行开发或者发布自己的编写程序时,无需支付任何的费用,也不用担心版权的问题,即便是商业用途也是免费的。   3、解释型语言:Python语言写程序的时候,不需要编写成二进制,可以直接从源代码运行程序。Python解释器把源代码转换称字节码中间的形式,然后编译成计算机使用的机器语言进行运行。   4、可移植性:Python是开源的,可以移植在许多平台之上,能够避免依赖系统特性,所以Python程序无需修改就可以再许多平台上进行运行,包含Linux、Windows、freebs等。   5、丰富强大的库:Python语言的类库是非常全面的,包含了解决各种问题的类库,无论实现什么功能,Python都有现成的类库可以进行使用。   6、可拓展性

转 Clr vra C# 什么是CTS

偶尔善良 提交于 2020-01-16 16:44:34
什么是CTS 需要记住的是CLR所有功能的实现都是基于类型的。一个类型将功能提供给一个应用程序或者另一个类型来使用。通过类型,用一种编程语言写的代码能与用另一种语言写的代码沟通。由于类型是CLR的根本,微软专门为如何定义、使用和管理类型定义了一个正式的规范-- 通用类型系统(Common Type System),即CTS。 CTS对类型的定义和行为特性给出了规范,这些特性包括但不仅限于以下几点: 类成员(Field、Method、Property、Event) 访问可见性级别(private、family、family and assembly 、assembly、family or assembly 、public) 类型的继承 接口 虚方法 对象的生命周期 同时,所有引用类型都必须继承自System.Object的规则也是在CTS中定义的。 一般来说,CLS主要提供了一下功能: 建立一个支持跨语言集成、类型安全和高性能代码执行的框架环境。 提供一个支持完整实现多种编程语言的面向对象的模型。 定义各语言必须遵守的规则,有助于确保用不同语言编写的对象能够交互作用。 提供包含应用程序开发中使用的基元数据类型(如Boolean、Byte、Char、Int32 和 UInt64)的库。 CLR是如何工作的 借用维基百科上的一副图来描述CLR的运行流程:

静态代码扫描的原理

懵懂的女人 提交于 2020-01-16 04:08:35
静态代码扫描存在的价值 研发过程,发现BUG越晚,修复的成本越大 缺陷引入的大部分是在编码阶段,但发现的更多是在单元测试、集成测试、功能测试阶段 统计证明,在整个软件开发生命周期中,30% 至 70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的 以上三点证明了,静态代码扫描在整个安全开发的流程中起着十分关键的作用,且实施这件事情的时间点需要尽量前移,因为扫描的节点左移能够大幅度的降低开发以及修复的成本,能够帮助开发人减轻开发和修复的负担,许多公司在推行静态代码扫描工具的时候会遇到 大幅度的阻力 ,这方面阻力主要来自于开发人员,由于工具能力的有限性,会产生大量的误报,这就导致了开发人员很可能在做BUG确认的工作时花费了大量的无用时间。因此选择一款合适的静态代码分析工具变得尤为重要,合适的工具能够真正达到降低开发成本的效果。 静态代码分析理论基础和主要技术 静态代码分析原理分为两种:分析源代码编译后的中间文件(如Java的字节码);分析源文件。主要分析技术如下: 缺陷模式匹配 事先从代码分析经验中收集足够多的共性缺陷模式,将待分析代码与已有的共性缺陷模式进行匹配,从而完成软件安全分析。优点:简单方便;缺点:需要内置足够多的缺陷模式,容易产生误报。 类型推断/类型推断 类型推断技术是指通过对代码中运算对象类型进行推理,从而保证代码中每条语句都针对正确的类型执行。

源代码转化为可执行文件分析

我的梦境 提交于 2020-01-15 15:00:26
一、具体流程 一个简单C程序: 编辑 (编辑器)->预编译(预处理器)->编译->汇编 (汇编器)->链接 (链接器)->可执行代码 如下: 二、 流程分析 1.编辑 写一个循环打印"Hello World",使用编辑器编辑一个文件名为:helloworld.c的文件,内容如下: 源代码: # include <stdio.h> # define NUM 10 int main ( int argc , char argv ) { int num ; //print for ( num = 0 ; num < NUM ; num ++ ) { printf ( "Hello World!\n" ) ; } return 0 ; } 2.预编译 使用gcc来进行分析,执行 gcc - E helloworld . c - o helloworld . i 进行预编译,生成helloWorld.i的预编译文件,可以使用编辑器打开HelloWorld.i这个文件。在文件里可以看到预处理的内容,最后生成如下: 797 # 5 "helloworld.c" 798 int main ( int argc , char argv ) 799 { 800 int num ; 801 802 for ( num = 0 ; num < 10 ; num ++ ) { 803 printf (

静态代码扫描原理

旧巷老猫 提交于 2020-01-15 12:45:04
静态代码扫描存在的价值 研发过程,发现BUG越晚,修复的成本越大 缺陷引入的大部分是在编码阶段,但发现的更多是在单元测试、集成测试、功能测试阶段 统计证明,在整个软件开发生命周期中,30% 至 70% 的代码逻辑设计和编码缺陷是可以通过静态代码分析来发现和修复的 以上三点证明了,静态代码扫描在整个安全开发的流程中起着十分关键的作用,且实施这件事情的时间点需要尽量前移,因为扫描的节点左移能够大幅度的降低开发以及修复的成本,能够帮助开发人减轻开发和修复的负担,许多公司在推行静态代码扫描工具的时候会遇到 大幅度的阻力 ,这方面阻力主要来自于开发人员,由于工具能力的有限性,会产生大量的误报,这就导致了开发人员很可能在做BUG确认的工作时花费了大量的无用时间。因此选择一款合适的静态代码分析工具变得尤为重要,合适的工具能够真正达到降低开发成本的效果。 静态代码分析理论基础和主要技术 静态代码分析原理分为两种:分析源代码编译后的中间文件(如Java的字节码);分析源文件。主要分析技术如下: 缺陷模式匹配 事先从代码分析经验中收集足够多的共性缺陷模式,将待分析代码与已有的共性缺陷模式进行匹配,从而完成软件安全分析。优点:简单方便;缺点:需要内置足够多的缺陷模式,容易产生误报。 类型推断/类型推断 类型推断技术是指通过对代码中运算对象类型进行推理,从而保证代码中每条语句都针对正确的类型执行。