android中级
JQ_AK47
这个作者很懒,什么都没留下…
展开
-
给activity设置自定义权限
关于给一个activity设置app以外的app访问这个activity所需要的权限这篇文字说的很明白基于自己多上面这边文字的理解自己时间了下。 比如我在一个叫networkapp的一个app上面的一个activity设置了一个自定义权限 首先在mainfest文件自定义一个权限<!-- 为networkapp声明一个权限 --> <permission android:原创 2016-09-09 16:24:12 · 9027 阅读 · 1 评论 -
NDK数组操作-在C中直接操作java的数组
/** * jni对数组运算 * 在C中没有创建新的数组副本,直接在原来的java数组上面修改。然后返回了jintArray类型数据 */JNIEXPORT jintArray JNICALL Java_com_org_vincent_javacallc_JNI_increseArray (JNIEnv * env, jobject job, jintArray jarr){原创 2016-12-01 23:11:45 · 1063 阅读 · 0 评论 -
NDK开发jstring和Cstring转换工具方法(实践有效)
/** 利用Java的String类来完成字符编码转换*/char* Jstring2CStr(JNIEnv* env,jstring jstr){ LOGI("enter CStr2Jstring 1"); char* rtn = NULL; jclass clsstring = (*env)->FindClass(env,"java/原创 2016-12-01 22:55:38 · 2211 阅读 · 0 评论 -
Android Studio NDK开发在C代码中将Log输出到logcat上面
Android Ndk开发中在原生代码那边是不能用printf函数的,用了也输不出来。需要android提供的log.h服务。 第一步:在对应模块下的build.gradle文件中ndk节点配置需要加入log配置: ndk{ moduleName "javacallc" //so文件,编译生产的动态链接库文件自动加前缀lib ldLibs "l原创 2016-12-01 22:18:28 · 3140 阅读 · 0 评论 -
Android NDK中开发中字符串的处理
1、先来个失败案例 char *src=js;//js是java传递过来的字符串引用 char *c="I'm from Jnilib"; size_t length=strlen(src)+strlen(c); memcpy(realloc(src,length+1),c,strlen(c)); *(src+length)='\0'; return src;上原创 2016-11-30 18:27:40 · 1200 阅读 · 0 评论 -
windows平台下AS1.5_NDKr10d开发实例
JNI 是一个协议, NDK 是Android用于开发Jni的工具包 1、下载android-ndk-r13b-windows-x86.zip压缩文件,放到一个没有中文没有空格的目录下面,比如E:\AndroidDev\AndroidSDK。然后解压缩到当前目录下面 2、将ndk目录配置到系统环境变量path中,将E:\AndroidDev\AndroidSDK\android-ndk-r13b原创 2016-11-30 00:15:18 · 678 阅读 · 0 评论 -
[Android Studio1.5][NDK r13b]Execution failed for task ':app:compileDebugNdk'. Error Code:2
参考链接 1、在Windows下NDK一个bug,当jni下仅仅编译一个文件时出现会出现此问题,解决方法就是往jni文件夹加入一个空util.c文件即可。2、在app/build.gradle下面的android节点里面新增一个子节点。sourceSets.main { jniLibs.srcDirs 'libs' jni.srcDirs = []}实验有效原创 2016-11-29 09:46:37 · 713 阅读 · 0 评论 -
关于ThreadLocal的理解
先上一个使用ThreadLocal实例的demo,ThreadLocalDemo 实例包含一个ThreadLocal实例。从网上各种信息看到ThreadLocal是线程私有变量。保持了每个变量的副本,其实ThreadLocal不能用于解决多线程共享变量问题。 ThreadLocal 中只是保存该线程自己创建的局部变量的副本。如果是多线程共享的变量还是会发生不能同步该的后果。下面这个例子就是启动两个原创 2016-10-20 13:21:01 · 950 阅读 · 0 评论 -
SoftReference 介绍
Java中的SoftReference 即对象的软引用。如果一个对象具有软引用,内存空间足够,垃 圾回收器就不会回收它;如果内存空间不足了,就会回收这些软引用的对象内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高 速缓存。使用软引用能防止内存泄露,增强程序的健壮性。 SoftReference的特点是它的一个实例保存对一个Java对象的软引用, 该软引用的存在原创 2016-10-07 17:00:49 · 679 阅读 · 0 评论 -
第一个EventBus实践
不好意思落伍了,现在才写第一个eventbus框架第一个实例分析 。 关于eventbus用的场景太多了,基于观察者模式,其中涉及的角色有发送者,接受者,消息事件,事件总线这四类角色,可以用于activity,fragment,service,broadcastReceiver之间的异步消息通信,以及子线程和四大组件之间的通信。 实践功能是在两个fragment之间进行消息传递,比如fragm原创 2016-10-01 00:22:03 · 518 阅读 · 0 评论 -
关于android include标签使用的一点心得和疑惑
include标签用于复用已有的布局文件,使得一份布局文件可以在多个地方使用。定义一个待复用的自定义标题栏布局文件 title_layout.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:la原创 2016-09-30 12:15:13 · 1451 阅读 · 0 评论 -
EditText控件的TextWatcher接口实现和其他控件的联动
使用TextWathcer限制EditText控件输入字符个数。页面布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools原创 2016-10-22 22:17:35 · 1335 阅读 · 0 评论 -
android短信发送和接受
短信发送发短信第一件事是在manifest文件中添加权限<uses-permission android:name="android.permission.SEND_SMS" /> 第一方法:调用系统发短信的应用 /** * 调起系统功能发短信 * @param phoneNumber * @param message原创 2016-09-19 13:42:19 · 4502 阅读 · 1 评论 -
ubuntu下面android ndk开发第一例
准备的资源是一个activity和一个JniService,activity中一个Button触发native代码执行。第一步:先新建JniService.java源代码,里面全是本地代码的声明,不用在这个文件中实现。package com.vincent.org.networkapp.jnidemo;public class JniService { private native stat原创 2016-09-18 18:23:26 · 709 阅读 · 0 评论 -
同一个android应用下面不同包下面activity 互相调用
默认情况下,android将所有的activity源代码放在模块manifest文件下的manifest节点packages属性指定的包目录下面,一般情况下我们的activity节点对android:name属性的赋值都是以.xxxx开头,这个其实就是相对于packages属性指定的包名的相对路径,加如packages赋值如下package="com.vincent.org.networkapp"/原创 2016-09-18 17:07:49 · 4106 阅读 · 0 评论 -
NDK中开发中比较字符串是否相等,
/** 利用Java的String类来完成字符编码转换*/char* Jstring2CStr(JNIEnv* env,jstring jstr){ LOGI("enter CStr2Jstring 1"); char* rtn = NULL; jclass clsstring = (*env)->FindClass(env,"java/原创 2016-12-01 23:58:23 · 3484 阅读 · 0 评论