Comtu


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

  • 搜索

Hexo笔记

发表于 2014-11-15 | 分类于 Github | | 阅读次数
| 字数统计 834字 | 阅读时长 4分钟

使用Hexo在github上搭建blog的操作笔记.

阅读全文 »

JNI

发表于 2014-11-01 | 分类于 Java | | 阅读次数
| 字数统计 7,358字 | 阅读时长 32分钟
  • 1.JNI简介
  • 2.最简单的Java调用C/C++代码的步骤
  • 3.在C/C++本地代码中访问Java代码简介

    • 3.1 JNIEnv 类型
    • 3.2 jobject
    • 3.3 jclass
    • 3.4 Java的类型在C/C++中的映射关系
  • 4.在C/C++本地代码中访问Java类中的属性与方法

    • 4.1 jfieldID/jmethodID
    • 4.2 Sign签名
    • 4.3 使用Javap命令来产生Sign签名
    • 4.4 取得Java属性/设定Java属性值
    • 4.5 Java方法的调用
  • 5.在C/C++本地代码中创建Java的对象
    • 5.1 NewObject
    • 5.2 AllocObject
  • 6.在C/C++本地代码中访问/创建Java的String字符串对象

    • 6.1 GetStringChars / GetStringUTFChars / ReleaseStringChars / ReleaseStringUTFChars
    • 6.2 GetStringCritical / ReleaseStringCritical
    • 6.3 GetStringRegion / GetStringUTFRegion
    • 6.4 字符串相关函数
  • 7.在C/C++本地代码中操作Java的数组对象

    • 7.1处理基本类型数组
    • 7.2处理对象类型数组
  • 8.全局引用/局部引用/弱全局引用

    • 8.1局部引用
    • 8.2全局引用
    • 8.2全局引用
    • 8.4关于引用的一些函数
  • 9.JNI优化

阅读全文 »

Android 中NDK的使用详解第二篇:Hello World

发表于 2014-10-29 | 分类于 Android | | 阅读次数
| 字数统计 2,105字 | 阅读时长 9分钟

目录:

Hello World
编译多个源文件
支持多CPU架构
使用Ant批量生成头文件

上一编讲到了搭建AndroidNDK开发环境的内容,这篇则进行实战.

在实战之前首先介绍一下NDK与JNI的关系.

JNI (Java Native Interface)
JNI是java语言提供的Java和C/C++相互沟通的机制,
Java可以通过JNI调用本地的C/C++代码,本地的C/C++的代码也可以调用java代码。
JNI 是本地编程接口,Java和C/C++互相通过的接口。
Java通过C/C++使用本地的代码的一个关键性原因在于C/C++代码的高效性。

NDK是一系列工具的集合。它提供了一系列的工具,
帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。
这些工具对开发者的帮助是巨大的。它集成了交叉编译器,并提供了相应的mk文件
隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要
编译”、“编译特性要求”等),就可以创建出so。它可以自动地将so和Java应用一起
打包,极大地减轻了开发人员的打包工作。

简单概括: 用C语言生成一个库文件,在java中调用这个库文件的函数。
JNI的过程比较复杂,生成.so需要大量操作,而NDK就是简化了这个过程。

阅读全文 »

Android 中NDK的使用详解第一篇:环境

发表于 2014-10-28 | 分类于 Android | | 阅读次数
| 字数统计 1,944字 | 阅读时长 8分钟

目录

  • 1.下载集成开发环境
  • 2.安装配置环境
  • 3.常用功能配置
    • 3.1自动生成头文件(配置javah)
    • 3.2生成Sign签名(配置Javap)
    • 3.3配置C/C++库

1. 下载集成开发环境

所需要的开发工具:
Eclipse 下载地址:http://www.eclipse.org/downloads/
选择Eclipse的时候可以选择C/C++版本的,方便后续直接在Eclipse里编写C程序.当然也可以自己对Eclipse安装C/C++插件
JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
ADT 下载地址:http://developer.android.com/sdk/installing/installing-adt.html
Android SDK 下载地址:http://developer.android.com/sdk/index.html
NDK 下载地址:http://developer.android.com/ndk/downloads/index.html
也可以直接下载ADT Bundle 但官方已经找不到下载地址.可网上搜索或者我下面提供的一个地址可找到.
如果没有代理可能很多工具无法下载.这里提供一个Android开发人员工具集给大家

阅读全文 »

Android安全模式机制之三(实际运用)

发表于 2014-10-27 | 分类于 Android | | 阅读次数
| 字数统计 6,584字 | 阅读时长 29分钟

目录:

  • 1.移动平台中的主流签名作用

    • 1.1自签名的完整性鉴别
    • 1.2信任模式
    • 1.3限制安装/运行
    • 1.4权限的作用
    • 1.5权限的安全性保护
    • 1.6Android的签名作用
    • 1.7Android APK之METAINF
  • 2.Android中的权限

    • 2.1Android的权限作用
    • 2.2Android的权限类别
    • 2.3Android的权限定义方式
    • 2.4Android的运行时权限控制方式
    • 2.5Android的Permission与UID/GID的mapping
  • 3.Android中的组件的安全机制

    • 3.1组件的权限分配(Demo)
      • 3.1.1 Activity
      • 3.1.2 Service
      • 3.1.3 ContentProvide
      • 3.1.4 BroadcastReceiver
  • 4.Android应用安装

    • 4.1应用安装的安全性考虑和调用方式
    • 4.2应用安装流程之UID/GID的分配
    • 4.3应用安装流程之工作目录的创建和权限设置
  • 5.Android中系统Service的安全

    • 5.1Binder的安全
    • 5.2ServiceManager Add Service的安全限制
    • 5.3Zygote的Process Fork
    • 5.4Zygote的Socket安全检查
  • 6.Android中的ContentProvider以及基于URI的安全

    • 6.1ContentProvider的作用
    • 6.2权限临时继承的需求
    • 6.3配置ContentProvider允许临时委派权限
    • 6.4基于URI的权限临时委派
  • 7.Android的Policy模式和多设备绑定

    • 7.1Android的Policy模式
    • 7.2MR2开始的AppOps(安卓4.3开始)
    • 7.3AppOps对开发者的影响
    • 7.4设备绑定
    • 7.5跨设备使用
  • 8.应用内计费和App2SDCard

    • 8.1应用内计费
    • 8.2SD卡安装应用的安全策略
  • 9.Android中的多用户安全

    • 9.1需求场景
    • 9.2UserManagerService
    • 9.3对开发者的影响
  • 10.Android Superuser机制讲解

    • 10.1ROOT的作用
    • 10.2ROOT的第一步:寻找漏洞并安装特权文件
    • 10.3SU的sUID的特性
    • 10.4SU的核心代码分析
    • 10.5MR2后的方案:SU Deamon Service
  • 11.SEAndroid

    • 11.1DAC和MAC
    • 11.2基于Label的MAC
    • 11.3推荐读物
阅读全文 »

Android安全模式机制之二(操作系统现代安全体系基础概念)

发表于 2014-10-26 | 分类于 Android | | 阅读次数
| 字数统计 4,212字 | 阅读时长 21分钟

目录:

  • 1.进程和进程边界
  • 2.多用户和多用户边界
  • 3.进程和文件的UID/GID (UserID/groupId)
    • 3.1文件资源的权限力度:UID/GID
    • 3.2文件的可操作权限
    • 3.3进程的标识: PID , UID , GID , GIDs
    • 3.4Name和ID的映射
    • 3.5Chmod和chown命令介绍
      • 3.5.1Chmod
      • 3.5.2Chown
  • 4.UID/GID的衔接
  • 5.进程的RealUID和EffectiveUID
  • 6.文件的setUID标识
  • 7.Capability
    • 7.1进程的Capability
    • 7.2文件的Capability
    • 7.3Capability BoundSet
    • 7.4Spawn进程的Capability

进程和进程边界

进程和线程
    可执行文件:不活动就是废物
    进程:可执行文件的活动表现,一次生命的历练
    线程:CPU(核)的调度单位,并发的执行序列,进程的多管齐下
    资源和调度.


进程边界的安全围栏: 
    Crash的不可扩延性
    全局数据和服务的不可访问性
阅读全文 »

Android安全模式机制之一(现代安全体系基础概念)

发表于 2014-10-25 | 分类于 Android | | 阅读次数
| 字数统计 1,602字 | 阅读时长 6分钟

目录:

  • 1.典型的加密模型
  • 2.对称秘钥算法 (加密解密密钥相同)
  • 3.非对称密钥算法(公钥密码)(加密与解密密钥不同.)
  • 4.密钥交换
  • 5.消息摘要
  • 6.电子签名
  • 7.证书与PKI

1.典型的加密模型

密钥:分为加密密钥和解密密钥
明文:没有进行加密,能够直接代表原文含义的信息.
密文:经这加密处理之后,隐藏原温含义的信息
解密:将密文转换成明文的实施过程.

明文P-->加密方法E --> 密文 --> 解密方法D --> 明文P
        加密密钥K  密文P=Ek(p)  解密密钥K'

    Dk'(Ek(P))=P    k=k'则为对称加密
阅读全文 »

Android程序自动化打包

发表于 2014-10-24 | 分类于 Android | | 阅读次数
| 字数统计 1,486字 | 阅读时长 6分钟

目录:

  • 1.概述
  • 2.准备
  • 3.开始(如果之前有做过前面的步骤可直达第三步)

1 概述

在一般的Android开发中,我们通常使用Eclipse自带的导出工具来进行App的签名和发布,Android自动化打包,就是利用脚本将这样一个手动操作的过程转化为一个命令搞定。

阅读全文 »

Java8新特性

发表于 2014-10-23 | 分类于 Java | | 阅读次数
| 字数统计 9,373字 | 阅读时长 42分钟

目录:

  • 1.简介
  • 2.Java的新特性
    • 2.1 Lambda表达式和函数式接口
    • 2.2 接口的默认方法和静态方法
    • 2.3 方法引用
    • 2.4 重复注释
    • 2.5 更好的类型推断
    • 2.6 注解的扩展
  • 3.Java编译器的新特性
    • 3.1 参数名字
  • 4.Java 库的新特性
    • 4.1 Optional
    • 4.2 Stream
    • 4.3日期时间API(JSR310)
    • 4.4 Nashorn javascript引擎
    • 4.5 Base64
    • 4.6 并行数组
    • 4.7 并发
    1. 新的工具
      • 5.1 Nashorn引擎:jjs
      • 5.2 类依赖分析工具:jdeps
    1. JVM的新特性
    1. 资源
阅读全文 »

娱乐一下

发表于 2014-10-22 | 分类于 HTML | | 阅读次数
| 字数统计 4字 | 阅读时长 1分钟

娱乐链接

1234
Comtu

Comtu

The time is passing

31 日志
9 分类
98 标签
GitHub Weibo
© 2013 - 2017 Comtu
由 Hexo 强力驱动
主题 - NexT.Mist