<commit_before># Android SDK 集成指南

## 使用提示

本文是 JMessage Android SDK 标准的集成指南文档。用以指导 SDK 的使用方法，默认读者已经熟悉IDE（Eclipse 或者 Android Studio）的基本使用方法，以及具有一定的 Android 编程知识基础。

本篇指南匹配的 JMessage Android SDK 版本为：2.0.0 及以后版本。

+ [极光文档](https://docs.jiguang.cn/jmessage/guideline/jmessage_guide/)网站上有JMessage相关的所有指南、API、教程等全部的文档。包括本文档的更新版本，都会及时地发布到该网站上。
+ 如果您看到本文档，但还未下载Android SDK，请访问[SDK下载页面](https://docs.jiguang.cn/jmessage/resources/)下载。


### JMessage SDK压缩包内容简介

+ demo/
	+ 一个用来展示JMessage SDK接口基本用法的demo应用。
+ doc/
	+ JMessage sdk中所包含所有对外接口的java doc。
+ libs/jcore-android_v1.X.Y.jar
	+ 极光开发者服务的核心包。
+ libs/jmessage-android-2.X.Y.jar
	+ JMessage SDK开发包
+ libs/(cpu-type)/libjcore1xy.so 
    + 各种CPU类型的native开发包。

### Android SDK 版本

目前SDK只支持Android 2.3或以上版本的手机系统。

## jcenter 自动集成步骤


***说明*** ： JMessage从2.1.2版本开始支持jcenter自动集成，使用jcenter自动集成的开发者，不需要在项目中添加jar和so，jcenter会自动完成依赖；在AndroidManifest.xml中不需要添加任何JPush SDK 相关的配置，jcenter会自动导入。

+ 如果开发者需要修改组件属性，可以在本地的 AndroidManifest 中定义同名的组件并配置想要的属性，然后用 xmlns:tools 来控制本地组件覆盖 jcenter 上的组件。示例：

		<manifest xmlns:android="http://schemas.android.com/apk/res/android"
			package="com.android.tests.flavorlib.app"
			xmlns:tools="http://schemas.android.com/tools">
			
			<application
				android:icon="@drawable/icon"
				android:name="com.example.jpushdemo.ExampleApplication"
				android:label="@string/app_name" >
				
				<service android:name="cn.jpush.android.service.PushService"
            		android:process=":multiprocess"
            		tools:node="replace" >
            		
            		……
            	</service>
            
            ……
          </application>  
          
          ……
		</manifest>


+ 确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持。（新建project默认配置就支持）
        
        buildscript {
            repositories {
                jcenter()
            }
            ......
        }
        
        allprojets {
            repositories {
                jcenter()
            }
        }
              
        
        
+ 在 module 的 gradle 中添加依赖和AndroidManifest的替换变量。


        
        android {
            ......
            defaultConfig {
                applicationId "com.xxx.xxx" //JPush上注册的包名.
                ......
                
                ndk {
                    //选择要添加的对应cpu类型的.so库。 
                    abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a' 
                    // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
                }
                
                manifestPlaceholders = [
                    JPUSH_PKGNAME : applicationId,
                    JPUSH_APPKEY : "你的appkey", //JPush上注册的包名对应的appkey.
                    JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
                ]
                ......
            }
            ......
        }
        
        
       
        dependencies {
            ......
            
            compile 'cn.jiguang.sdk:jmessage:2.4.0'  // 此处以JMessage 2.4.0 版本为例。
            compile 'cn.jiguang.sdk:jcore:1.1.7'  // 此处以JCore 1.1.7 版本为例。
            ......
        }
        
        
***注*** : 如果在添加以上 abiFilter 配置之后android Studio出现以下提示：

        NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
则在 Project 根目录的gradle.properties文件中添加：

        android.useDeprecatedNdk=true


## 手动集成步骤

+ 解压缩 jmessage-sdk-android-2.X.Y.zip 集成压缩包。
+ 复制 libs/jcore-android_v1.X.Y.jar 到工程 libs/ 目录下。
+ 复制 libs/jmessage-android_2.X.Y.jar 到工程 libs/ 目录下。
+ 复制 libs/(cpu-type)/libjcore1xy.so 到你的工程中存放对应cpu类型的目录下。


***说明***：使用android studio的开发者，如果使用jniLibs文件夹导入so文件，则仅需将所有cpu类型的文件夹拷进去；如果将so文件添加在module的libs文件夹下，注意在module的gradle配置中添加一下配置：

       
        android {
            ......<commit_msg>jmessage android guide中JCore改成1.1.8<commit_after># Android SDK 集成指南

## 使用提示

本文是 JMessage Android SDK 标准的集成指南文档。用以指导 SDK 的使用方法，默认读者已经熟悉IDE（Eclipse 或者 Android Studio）的基本使用方法，以及具有一定的 Android 编程知识基础。

本篇指南匹配的 JMessage Android SDK 版本为：2.0.0 及以后版本。

+ [极光文档](https://docs.jiguang.cn/jmessage/guideline/jmessage_guide/)网站上有JMessage相关的所有指南、API、教程等全部的文档。包括本文档的更新版本，都会及时地发布到该网站上。
+ 如果您看到本文档，但还未下载Android SDK，请访问[SDK下载页面](https://docs.jiguang.cn/jmessage/resources/)下载。


### JMessage SDK压缩包内容简介

+ demo/
	+ 一个用来展示JMessage SDK接口基本用法的demo应用。
+ doc/
	+ JMessage sdk中所包含所有对外接口的java doc。
+ libs/jcore-android_v1.X.Y.jar
	+ 极光开发者服务的核心包。
+ libs/jmessage-android-2.X.Y.jar
	+ JMessage SDK开发包
+ libs/(cpu-type)/libjcore1xy.so 
    + 各种CPU类型的native开发包。

### Android SDK 版本

目前SDK只支持Android 2.3或以上版本的手机系统。

## jcenter 自动集成步骤


***说明*** ： JMessage从2.1.2版本开始支持jcenter自动集成，使用jcenter自动集成的开发者，不需要在项目中添加jar和so，jcenter会自动完成依赖；在AndroidManifest.xml中不需要添加任何JPush SDK 相关的配置，jcenter会自动导入。

+ 如果开发者需要修改组件属性，可以在本地的 AndroidManifest 中定义同名的组件并配置想要的属性，然后用 xmlns:tools 来控制本地组件覆盖 jcenter 上的组件。示例：

		<manifest xmlns:android="http://schemas.android.com/apk/res/android"
			package="com.android.tests.flavorlib.app"
			xmlns:tools="http://schemas.android.com/tools">
			
			<application
				android:icon="@drawable/icon"
				android:name="com.example.jpushdemo.ExampleApplication"
				android:label="@string/app_name" >
				
				<service android:name="cn.jpush.android.service.PushService"
            		android:process=":multiprocess"
            		tools:node="replace" >
            		
            		……
            	</service>
            
            ……
          </application>  
          
          ……
		</manifest>


+ 确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持。（新建project默认配置就支持）
        
        buildscript {
            repositories {
                jcenter()
            }
            ......
        }
        
        allprojets {
            repositories {
                jcenter()
            }
        }
              
        
        
+ 在 module 的 gradle 中添加依赖和AndroidManifest的替换变量。


        
        android {
            ......
            defaultConfig {
                applicationId "com.xxx.xxx" //JPush上注册的包名.
                ......
                
                ndk {
                    //选择要添加的对应cpu类型的.so库。 
                    abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a' 
                    // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
                }
                
                manifestPlaceholders = [
                    JPUSH_PKGNAME : applicationId,
                    JPUSH_APPKEY : "你的appkey", //JPush上注册的包名对应的appkey.
                    JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
                ]
                ......
            }
            ......
        }
        
        
       
        dependencies {
            ......
            
            compile 'cn.jiguang.sdk:jmessage:2.4.0'  // 此处以JMessage 2.4.0 版本为例。
            compile 'cn.jiguang.sdk:jcore:1.1.8'  // 此处以JCore 1.1.8 版本为例。
            ......
        }
        
        
***注*** : 如果在添加以上 abiFilter 配置之后android Studio出现以下提示：

        NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
则在 Project 根目录的gradle.properties文件中添加：

        android.useDeprecatedNdk=true


## 手动集成步骤

+ 解压缩 jmessage-sdk-android-2.X.Y.zip 集成压缩包。
+ 复制 libs/jcore-android_v1.X.Y.jar 到工程 libs/ 目录下。
+ 复制 libs/jmessage-android_2.X.Y.jar 到工程 libs/ 目录下。
+ 复制 libs/(cpu-type)/libjcore1xy.so 到你的工程中存放对应cpu类型的目录下。


***说明***：使用android studio的开发者，如果使用jniLibs文件夹导入so文件，则仅需将所有cpu类型的文件夹拷进去；如果将so文件添加在module的libs文件夹下，注意在module的gradle配置中添加一下配置：

       
        android {
            ......
{'fraction_non_alphanumeric': 0.11312584573748309, 'fraction_numerical': 0.010419485791610283, 'mean_word_length': 1.850366370998843, 'pattern_counts': {'":': 2, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 8}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3860964', 'n_tokens_mistral': 3346, 'n_tokens_neox': 3351, 'n_words': 350}