摘要:
1、在java中调用 Native代码,JNI的写法#include <string.h>#include <jni.h>#include <stdio.h>#include <android/log.h>#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "native-activity", __VA_ARGS__))JNIEXPORT jstring JNICALLJava_com_ndk_NDKFirstActivity_getTime( JNIE 阅读全文
摘要:
1、Java文件中的所有的文件名、包名、类名、方法名,不要有_(下划线),这样会与 JNI中的 方法名混淆。2、多个c文件中含有 jni方法,则需要添加到LOCAL_SRC_FILES := ndk_first.c math.c3、在jni文件中使用日志需要配置如下:#include <android/log.h>#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)#define LOGD(...) __android_log_print(AN 阅读全文
摘要:
1、NDK 一中已经提到,使用eclipse中的配置 ,自动编译2、手动编译(推荐)打开bash.exe(即启动cygwin)使用cd $NDK 进入/cygdrive/e/android-ndk-r5/用cd进入到对应的目录;进入对应的目录,使用 $NDK/ndk-build 编译得到结果,例如1、 我们选择ndk自带的例子hello-jni,我的位于E:\android-ndk-r5\samples\hello-jni(根据你具体的安装位置而定),2、 运行cygwin,输入命令cd /cygdrive/e/android-ndk-r5/samples/hello-jni,进入到E:\an 阅读全文
摘要:
一:什么是NDK?NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和java 应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK 集成了交叉编译器,并提供了相应的mk 文件隔离CPU、平台、ABI 等差异,开发人员只需要简单修改mk 文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK 可以自动地将so 和Java 应用一起打包,极大地减轻了开发人员的打包工作。比较简单的说,NDK是一套交叉编译工具,它可以帮你把你用C或C++书写的代码,编译为.so(类似与win下的.dll)格式的文件,使你可以在你的Android程序 阅读全文
摘要:
<ImageView android:id="@+id/imageview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/zixun" android:scaleType="matrix" />关键点:缩放的内容不能是图片的背景,一定要是... 阅读全文
摘要:
private String getVersionName() throws Exception { // 获取packagemanager的实例 PackageManager packageManager = getPackageManager(); // getPackageName()是你当前类的包名,0代表是获取版本信息 PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0); ... 阅读全文
摘要:
xmlns是什么意思我们经常会在网页中碰到形如<html xmlns=”http://www.w3.org/2001/xhtml”>这样的代码,或在是android 编码中的main.xml中看到形如<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 那后面的xmlns是表示什么意思呢?官方概念:xmlns是xml namespace的缩写,也就是XML命名空间,xmlns 属性可以在文档中定义一个或多个可供选择的命名空间。该属性可以放置在文档内任何元素的开始标签 阅读全文
摘要:
1、AIDL (Android Interface Definition Language)2、AIDL 适用于 进程间通信,并且与Service端多个线程并发的情况,如果只是单个线程 可以使用 Messenger ,如果不需要IPC 可以使用Binder3、AIDL语法:基础数据类型都可以适用,List Map等有限适用。static field 不适用。4、AIDL基本用法第一步:实现.aidl文件接口描述文件1、导入的包名2、如果有使用Object对象,需要该对象 implement Parcelable 接口,并且需要导入该接口包名+类名; 如果是primitive type 不需要这 阅读全文
摘要:
int time = 1345101858;long realTime = time *1000;realTime的值并不是等于1345101858000 而是等于 777094352,应该将 time的类型也改为 long 才正确 阅读全文
摘要:
补充:在Activity 与Service中的循环线程并不会因为Activity 、Service的 销毁而终止。IntentService中同样也是1、启动服务的两种方式: startService 没有返回,用于播放音乐,下载文件 bingService 有返回,并且可以实现进程间交互。多个组件可以同时与一个Service 绑定,当且仅当所有绑定解除 Service is Destory 2、可以同时使用两种方式调用同一Service3、在另外一个app中也可以访问Service, 如果不想让其他app访问可以设置android:exported=“fal... 阅读全文