在之前的文章“【工具】统计jar包和apk中的java方法数”中,给大家分享了两个统计工具,分别是统计jar包种的java方法数工具jarmethod,和统计apk文件中所有的java方法数工具apkmethod。但在项目中,我发现这个还不够,因为我还想要去统计每个package中的java方法数,当然,这个工具就比前面两个要复杂一点点了。
在之前的文章“【工具】统计jar包和apk中的java方法数”中,给大家分享了两个统计工具,分别是统计jar包种的java方法数工具jarmethod,和统计apk文件中所有的java方法数工具apkmethod。但在项目中,我发现这个还不够,因为我还想要去统计每个package中的java方法数,当然,这个工具就比前面两个要复杂一点点了。
一个小需求:计算Android App所占用d的手机内存(RAM)大小、App所产生的数据(Data)大小、App本身所占用的磁盘空间(ROM)大小。当然,这个就必须用到PackageManager了。
1、查看Android中PackageManager源码,找到getPackageSizeInfo方法:
之前有遇到一个“Unable to execute DX”的编译错误,但是真正原因是dex包种,方法数量超过64K。但今天又遇到了一个“Unable to execute DX”的编译错误,但错误类型是“ Multiple dex files define ”,具体错误信息为:
在Android客户端,地理信息定位主要有GPS定位、基站定位、WIFI定位、A-GPS定位,各自的基本情况差不多是这个样子的:
一、GPS定位: Global Positioning System,全球定位系统
原理:
转载一篇文章,虽然有点儿老了,但对了解Android系统架构,还是非常有帮助的!
导读:Sans Serif是Google的一位工程师,近日发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对Android的介绍很好,如下是CSDN对文章的简单翻译:
项目上使用到WebView的场景很多,但一直没有一个能通用的组件,没人都是根据自己的需要自己写了一套,其实仔细比对,会发现所有人写的WebView Activity都长的差不多,只不过有的需要cookie、有的需要js Interface,有的两个都需要,有的两个都不需要。于是,这两天起了一个技术项目,新开发一个通用一点的WebView Activity,然后把项目中所有用到WebView的地方,都用这个新的Activity替换--TbWebViewActivity。
1、Daily Build版本:在每天RD提交代码后,次日早上获取,并携带4位小版本,如:5.4.0.1
2、灰度版本:即小流量发布的版本,对于大用户规模的产品来说,是有必要先发布一个小流量版本给特定批次的用户,以此收集用户反馈、crash率等;灰度期间的版本与上一个正式发布版本的版本号相同(AndroidManifest中,如:5.3.2),目的是防止被各种手机助手抓包并分发,用户规模被恶意扩大;但在客户端About页显示为新版本,如:5.4.0
3、正式版本:即全流量发布的版本,客户端中的所有版本号都将比上一个正式版本大,如:5.4.1
之前做Web项目的时候,经常会使用Fiddler(Windows下)、Charles Proxy(Mac下)来抓包,调试一些东西;现在搞Android App开发,有时候也需要分析手机App的网络请求,包括参数、返回值等。在Mac上也是可以继续使用Charles Proxy来抓Android App发出的网络包的,大概的几个步骤:
1、保证手机和Mac连接的是同一个无线局域网
2、在Mac上打开Charles Proxy,菜单栏操作:Proxy→Proxy Setting,检查端口,一般保持默认,HTTP Proxy端口为8888
3、查看Mac当前的IP地址,之后作为手机的Proxy IP用:
如题,项目太大,文件太多,今天又svn up了一堆东西,和之前一样,Build→Rebuild,结果就出了这么一个错:Unable to execute dx,详细信息如下图:
这个问题实在太恶心了!