alonealice

个人博客

C语言学习笔记(三)

结构体和共同体 结构体,有点像java的类:struct 结构体名{成员列表} 123456789struct Man{ int age; int sex;};或者:struct Man{ int age; int sex;}man; 使用结构体的成员变量时使用结构体名.成员名 初始化结构体时可以直接加括号;也可以直接定义结构体数组初始化结......

C语言学习笔记(二)

函数和指针 处理字符串的方法(需要string.h):strcpy(a,b):把b复制给a;strcat(a,b)。在这里需要注意的是,a,b都是数组如int[]。;strcmp(a,b):把b连到a后面;strcmp(a,b):比较a,b是否相等(a、b既可以是数组,也可以是地址);strupr(a)把字符串变大写,strlwr(a)把字符串变小写,这两个函数不是标准的函数,只能在vc......

C语言学习笔记(一)

大学时期学过C语言,但是各种原因学的不是很完整,同时由于时间久远,很多内容也有点忘记了。所以找了点时间看了一本C语言的入门书籍,快速的把遗忘的和之前没学到的C语言的基础知识简单学习一下,写个笔记以便后面查询。 编程规范 代码缩进统一为4个字符,使用tab 常量名全部使用大写,成员变量用m_开始,普通变量,要在前面添加类型的首字母,且名称的首字母要大写如iAge,指针要加p,且首字母大写,如......

android自定义键盘

在某些安全性比较高的软件,如银行的相关软件中,输入密码等操作时往往会弹出自定义的软键盘。如果输入的只有数字,开发者往往会通过自定义View和TextView的方式实现,这种方式可以避免第三方键盘的调起。但是如果需要在editview中实现时,就需要实现自己的键盘。 实现自定义键盘主要有两个类:Keyboard和KeyboardView。 Keyboard类主要是用于监听虚拟键盘,它里面有内部......

NDK学习笔记(四)

在开发NDK的过程中,我们会发现,一旦程序出现异常,程序会直接闪退,而且不会有相关的日志,只会留下类似这样的一句话: 1A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 1656 (telife.jnistudy) 一旦遇到这样的错误信息,我们即找不到错误的原因,也找不到出错的地方,根本无从改起。 那要怎么办呢?......
ndk

NDK学习笔记(三)

在ndk开发中,很多时候并不需要我们实现全部的代码,往往可以通过NDK的API来实现相应的功能,那么ndk中要如何使用NDK的api呢? 添加 NDK API 在介绍如何使用NDK的api时,会以打印的log为例,该包可以实现将native层的信息打印到log中。 首先,我们需要在源文件中引入log的头文件: 1#include <android/log.h> 引入头文件后,我们......
ndk

NDK学习笔记(二)

之前的文章中我详细的介绍了第一个NDK程序,后面要讲讲如何使用jni的接口,实现更多的功能。 jstring相关方法 首先要讲讲jstring相关方法。 NewStringUTF NewStringUTF函数传入一个字符串,返回jstring对象。 12345678910char p[20]="hello";return env->NewStringUTF(p);或......
ndk

NDK学习笔记(一)

在Android开发中,使用NDK开发越来越重要。如何在android studio中使用NDK开发,这里不再介绍,可以参考第一个ndk程序。在程序运行起来之后,接下来主要是要讲讲这个方法中相关代码的含义。 第一个程序分析 首先是引入了jni.h和string.h的头文件,作为jni的程序,引入jni的相关内容是必须的,同时,因为里面还用到了string的内容,所以也引入了string的头文......
ndk

ThreadLocal解析

ThreadLocal是一个关于创建线程局部变量的类,为解决多线程程序的并发问题提供了一种新的思路。使用ThreadLocal创建的变量只能被当前线程访问,其他线程则无法访问和修改。那它内部是如何实现的呢? ThreadLocal对外提供三个方法:set、get和remove,那我们一次来看一下这几个方法。 1234567891011121314151617public void set(T......

LocalBroadcastManager源码分析

当我们在发送广播时,有时会遇到这样的问题,就是我不想让该广播被其他应用接收,或者我的广播接收器不想接收其他的应用的广播,这该怎么做呢?解决的方案有很多中,比如可以自定义广播的权限;比如可以给intent设置package等。但是这些方法,一旦应用被反编译,就完全无法保障其他应用再来发冒充我们的广播了。在Android系统中,有一个LocalBroadcastManager类,就是专门来解决广......