关于网站API接口的获取与调用,在网站开发中运用比较常见,也是每一个程序员、开发者必需的技能,比如从腾讯,新浪等大型网站提供的接口调用,在开发者经常遇到;所以,作为开发人员,在写好代码的同时,要学会API接口的调用。本篇经验以C#语言为了,演示发送短信的API接口调用。
工具/原料
计算机
方法/步骤
1、熟悉概念什么是API,即应用程序编程接口,也就是在网站开发时预先定义的函数,就是常说的开源函数,只不过将一些固定的程序封装在这些函数中,待调用时只需要一个借口引用,方便又简单。就像调用Jquery函数一样。
2、获取接口地址发送短信API接口在开源代码里面可以查到,可以直接到开源网站查询即可。
3、分析参数短息接口跟其他接口有所不同,短信接口是由各地运营商收费才能开通。所以,接口返回成功不代表接收成功,具体接收状态只能由运营商查询,另外,短信api接口本身不限制发送频率,具体发送频率需要用户自行设置。
4、调用返回值测试在html文件中写入调用接口,并测试,查看是否调用成果,如图显示成果与失败的返回参数。
5、C#接入接口在C#程序中输入以下代码,调用短信接口;usingSystemusingSystem.Collections.GenericusingSystem.LinqusingSystem.TextusingSystem.NetusingSystem.IOusingXfrog.NetusingSystem.DiagnosticsusingSystem.Web如图:(关于C#程序的创建,不再演示)
6、申明调用空间每个函数都需要事先声明才能调用,所以,在程序开始时,必须声明命名空间namespaceConsoleAPI{}
7、定义请求方法程序的调用方法一般为Post和Get两种,所以要申明用什么调用,关于Post和Get的区别,本处不作重点介绍。
8、创建请求函数声明请求方式之后,即可创建请求函数,包括发送语言,延时响应等参数
9、请求参数及文本转换设置相关参数后,将程序编码转换为文字编码,这样接收方才能正常显示文字,否则就是一段代码,行外人是看不懂的,所以,必须将数据流转换为文本对象。
10、释放资源并测试写程序调用时,不管是什么程序,在调用完之后一定要释放程序,否则将会一直占用资源,消耗内存。
.一、利用Android API函数查看1.1 ActivityManager查看可用内存。
ActivityManager.MemoryInfo outInfo = new ActivityManager.MemoryInfo()
am.getMemoryInfo(outInfo)
outInfo.availMem即为可用空闲内存。
1.2、android.os.Debug查询PSS,VSS,USS等单个进程使用内存信息
MemoryInfo[] memoryInfoArray = am.getProcessMemoryInfo(pids)
MemoryInfo pidMemoryInfo=memoryInfoArray[0]
pidMemoryInfo.getTotalPrivateDirty()
getTotalPrivateDirty()
Return total private dirty memory usage in kB. USS
getTotalPss()
Return total PSS memory usage in kB.
PSS
getTotalSharedDirty()
Return total shared dirty memory usage in kB. RSS
二、直接对Android文件进行解析查询,
/proc/cpuinfo系统CPU的类型等多种信息。
/proc/meminfo 系统内存使用信息
如
/proc/meminfo
MemTotal: 16344972 kB
MemFree: 13634064 kB
Buffers: 3656 kB
Cached: 1195708 kB
我们查看机器内存时,会发现MemFree的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
所以 空闲内存=free+buffers+cached=total-used
通过读取文件/proc/meminfo的信息获取Memory的总量。
ActivityManager. getMemoryInfo(ActivityManager.MemoryInfo)获取当前的可用Memory量。
三、通过Android系统提供的Runtime类,执行adb 命令(top,procrank,ps...等命令)查询
通过对执行结果的标准控制台输出进行解析。这样大大的扩展了Android查询功能.例如:
final Process m_process = Runtime.getRuntime().exec("/system/bin/top -n 1")
final StringBuilder sbread = new StringBuilder()
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(m_process.getInputStream()), 8192)
# procrank
Runtime.getRuntime().exec("/system/xbin/procrank")
内存耗用:VSS/RSS/PSS/USS
Terms
• VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
• RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
• PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
• USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
USS is the total private memory for a process, i.e. that memory that is completely unique to that process.USS is an extremely useful number because it indicates the true incremental cost of running a particular process. When a process is killed, the USS is the total memory that is actually returned to the system. USS is the best number to watch when initially suspicious of memory leaks in a process.
转载
在MFC里,,用 ::后面跟函数名这种方式调用的函数是API函数,::前面有类标识的都是MFC的类的成员函数 ,不会是API函数 的,,MFC就是把API做了封装,,,那怕跟API函数 名一样,,但也不是API函数了,,afx_msg只是说明这个函数是某个消息的响应函数 。。。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)