CPU(计算)+RAM(内存)+ROM(内置存储卡)+ GPU(图像处理等)等参数。
  手机芯片制造商高通;英特尔Intel芯片,服务器芯片。
> CPU类型与SO文件
-- 手机的CPU,多核,32Bit CPU,64Bit CPU;
Android 的ARM架构和X86架构- http://blog.csdn.net/victor_barnett/article/details/79446137

  早期的Android系统几乎只支持ARMv5的CPU架构,而现在Android平台支持7种不同的CPU架构,他们分别是ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI(Application Binary Interface)。  64位的CPU架构总能向下兼容其对应的32位指令集,如:x86_64兼容X86,arm64-v8a兼容armeabi-v7a,mips64兼容mips;
  对于CPU来说,不同的架构并不意味着一定互不兼容;Android共支持七种不同类型的CPU架构,其兼容特点可总结如下:
armeabi设备只兼容armeabi;
armeabi-v7a设备兼容armeabi-v7a、armeabi;
arm64-v8a设备兼容arm64-v8a、armeabi-v7a、armeabi;
X86设备兼容X86、armeabi;
X86_64设备兼容X86_64、X86、armeabi;
mips64设备兼容mips64、mips;
mips只兼容mips;

  目前市场份额而言,绝大部分的设备都已经是armeabi-v7a、arm64-v8a,你也可以考虑只保留armeabi-v7a架构的SO文件,这样能获得更好的性能效果。性能差异比较明显加入单的的so文件并在代码中去判断。
  Android arm 架构注重的是续航能力 ;x86 架构注重的是性能 。
  在Android系统上,每一个CPU架构对应一个ABI:armeabi;armeabi-v7a;x86;mips;arm64-v8a;mips64;x86_64

-- Android 相关七种 CPU 架构适配- https://blog.csdn.net/Kester_/article/details/71055901
  NDK 开发时会涉及到 CPU 架构的适配,不同的机器上可能会有不同的 CPU 架构,也就是说,翻译到机器上使用的规则
不一样,Android 上有7种 CPU 架构:1.armeabi ;2.armeabi-v7a ;3.arm64-v8a ;4.x86 ;5.x86_64 ;6.MIPS ;7.MIPS64 
  从厂家上来分是有三种,arm,x86,MIPS,arm 系列是绝大多数手机上使用的,x86 主要是运用在平板上,而 MIPS 基
本上就没见过。正常来说只使用 armeabi-v7a 就可以适配基本所有手机了,因为现在手机基本上都支持这种CPU架构。

-- CISC(复杂指令集)和RISC(精简指令集)在很多方面都有所差异:
  RISC的设计重点在于降低由硬件执行指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能,因此RISC设计对编译器有更高的要求;CISC的设计则更侧重于硬件执行指令的功能,使CISC的指令变得很复杂。总之RISC对编译器的要求高,CISC强调硬件的复杂性,CPU的实现更复杂。
 1.指令集----RISC处理器减少指令集的种类,通常一个周期一条指令,也就是说指令的周期是固定的,编译器或程序员通过几条指令完成一个复杂的操作;CISC的指令长度通常不固定。
 2.流水线----流水线的本质就是CPU并行运行,只是并行运行不像FPGA中的那么直接,它只是把一条指令分成几个更小的执行单元;CISC指令的执行需要调用一个微程序,明显没有RISC的指令吞吐量大。
 3.寄存器----RISC的寄存器拥有更多的通用寄存器,寄存器操作较多,例如ARM具有27个寄存器,CISC的寄存器都是用于特定目的的。
 4.Load-store结构----处理器只处理寄存器中的数据,这是因为访问存储器很耗时,同时对外部存储器的读写会影响其寿命;CISC能够在存储器中直接运行
 5.寻址方式简化,不像CISC那样的复杂众多的寻址方式

-- 目前在iOS设备上的CPU指令为一下几种:
 armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第一代)、iPod Touch(第二代)       
 armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2
 armv7s: iPhone 5、iPhone 5c (静态库只要支持了armv7,就可以在armv7s的架构上运行)
 arm64(注:无armv64): iPhone 5s、iPhone 6、iPhone 6 Plus、iPhone 6s、iPhone 6s Plus、 iPhone 7 、iPhone 7 Plus、iPad Air、iPad Air2、iPad mini2、iPad mini3、iPad mini4、iPad Pro。

-- SO文件
Android SO文件的兼容和适配- http://blog.coderclock.com/2017/05/07/android/Android-so-files-compatibility-and-adaptation/
根据以上的兼容总结,我们还可以得到一些规律:
  armeabi的SO文件基本上可以说是万金油,它能运行在除了mips和mips64的设备上,但在非armeabi设备上运行性能还是有所损耗;
ndk {
  // 设置支持的SO库架构
  abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a','x86', 'x86_64'
}
ndk {
  // 设置支持的SO库架构
  abiFilters 'armeabi'//, 'armeabi-v7a', 'arm64-v8a','x86', 'x86_64'
}
-- 通过下面的配置来制定支持的ABI:
TARGET_CPU_API := all APP_ABI := all或者是
TARGET_CPU_API := armeabi armeabi-v7a x86 x86_64 arm64-v8a mips mips64 APP_ABI := armeabi armeabi-v7a x86 x86_64 arm64-v8a mips mips64 

  开发Android应用时,有时候Java层的编码不能满足实现需求,就需要到C/C++实现后生成SO文件,再用System.loadLibrary()加载进行调用,这里成为JNI层的实现。常见的场景如:加解密算法,音视频编解码等。
  就目前市场份额而言,绝大部分的设备都已经是armeabi-v7a、arm64-v8a,你也可以考虑只保留armeabi-v7a架构的SO文件,这样能获得更好的性能效果。

> 手机IMEI的构成规则,手机IMEI码由15-17位数字组成: 

 第一部分 TAC,Type Allocation Code,类型分配码,由8位数字组成(早期是6位),是区分手机品牌和型号的编码,该代码由GSMA及其授权机构分配。其中TAC码前两位又是分配机构标识(Reporting Body Identifier),是授权IMEI码分配机构的代码,如01为美国CTIA,35为英国BABT,86为中国TAF。

 第二部分 FAC,Final Assembly Code,最终装配地代码,由2位数字构成,仅在早期TAC码为6位的手机中存在,所以TAC和FAC码合计一共8位数字。FAC码用于生产商内部区分生产地代码。

 第三部分 SNR,Serial Number,序列号,由第9位开始的6位数字组成,区分每部手机的生产序列号。

 第四部分 CD,Check Digit,验证码,由前14位数字通过Luhn算法计算得出。

 第五部分 SVN,Software Version Number,软件版本号,区分同型号手机出厂时使用的不同软件版本,仅在部分品牌的部分机型中存在。

-- “求一个HTC手机的IMEI”

金立手机 IMEI:8625 8302 7073 776

oppo手机 IMEI:8629 6503 3916 272,IMEI2:8629 6503 3916 264

三星手机 IMEI:3499 4566 1188 460(2),3529 9305 8134 818,3562 0505 9148 432,3574 4505 2236 185

联想手机 IMEI:8609 8803 0355 288,IMEI2:8609 8803 0355 296

诺基亚手机IMEI:3533 8409 9184 716,IMEI:3533 8409 9184 718,  351939054167774

魅族手机 IMEI1:8651 7603 2647 226,IMEI2:8651 7603 2647 234

vivo手机 IMEI:8686 0204 4746 778,IMEI2:8686 0204 4746 760

iOS手机 UUID:755881A5-1736-4CAB-A74E-422CE2738423

小米手机IMEI:863020013056431

华为手机IMEI:865744020052795

一加手机的IMEI:
锤子手机的IMEI:

中兴手机的IMEI:867354001422255,861603000178797,866335010729773,862130029790542,865310617170964,868447013461623

HTC手机的IMEI:357568014194505,359788040956007,354974045750138,352666046665008

360手机的IMEI:

public String getAndroidIMEI() {
        String imeiArray[] = {"862583027", "862965033", "349945661", "860988030", "353384099", "865176032", "868602044", "863020013", "865744020"
                , "351939054", "352993058", "356205059", "357445052", "867354001", "861603000", "866335010", "862130029", "865310617", "357568014"
                , "359788040", "354974045", "352666046", "868447013"};
        int index = (int) (Math.random() * imeiArray.length);
        String random = imeiArray[index];
        String sixNum = (int) ((Math.random() * 9 + 1) * 100000) + "";
        return random + sixNum;
    }

    public String getiOSuuid() {
        String origin = "755881A517364CABA74E422CE2";
        String sixNum = (int) ((Math.random() * 9 + 1) * 100000) + "";
        return origin + sixNum;
    }

更多相关文章

  1. Android高级应用2----ContentProvider(访问手机短信和通讯录数据)
  2. Android系统的架构
  3. Android游戏发展趋势分析
  4. Android热补丁技术—dexposed原理简析(手机淘宝采用方案)
  5. Android2.2和2.3有什么区别
  6. android简介
  7. android 体系架构
  8. Android作为SocketServer以及手机IP问题
  9. Android(安卓)平台架构

随机推荐

  1. Android 通信录中的联系人操作
  2. Android SDK Tools R15 发布
  3. android 复制、粘贴文字
  4. android 新手学习笔记 点击事件
  5. Spinner下拉位置处理
  6. JAVA设计模式之Template method
  7. 教你如何用最新的技术快速开发一个完整的
  8. 【Android】性能分析工具:开篇
  9. Android 开发小经验
  10. recommend a book for android newcomer