Android 学习
永不做码农
一枚正在努力的学僧
展开
-
Android之HAL层编写LED点灯程序
typedef struct hw_module_t { // 驱动模块 /** tag must be initialized to HARDWARE_MODULE_TAG */ uint32_t tag; //模块标识(固定不变) /** major version number for the module */ uint16_t version_major;...原创 2020-09-18 09:57:16 · 497 阅读 · 0 评论 -
Android之android系统启动流程
嵌入式Linux主要有这几部分:Bootloader:主要用于引导Linux内核到内存中,让内核进行自解压并运行zImage:带自解压的Linux内核<Board>.dtb:每个型号的主板都有对应的设备树(保存对应的设备型号等信息,实现驱动和 设备分离)rootfs.img:Linux根文件系统,用于支持Linux内核运行的最小文件系统 (其实Android系统也是属于Linux文件系统的一种)Androi原创 2020-09-18 09:53:40 · 134 阅读 · 0 评论 -
Android之Android.mk文件简介
android.mk文件实际为Makefile文件LOCAL_PATH := $(call my-dir) 指定当前目录为编译路径include $(CLEAR_VARS) 清除LOCAL_XX变量LOCAL_SRC_FILES := a.cpp 指定源码文件LOCAL_MODULE := app_process 指定目标模块名LOCAL_SHARED_LIBRARIES := 指定依赖的动态库LOCAL_PACKAGE_NAME原创 2020-09-18 09:34:53 · 807 阅读 · 0 评论 -
Android mk详解
LOCAL_PATH := $(call my-dir) 指定当前目录为编译路径include $(CLEAR_VARS) 清除LOCAL_XX变量LOCAL_SRC_FILES := a.cpp 指定源码文件LOCAL_MODULE := app_process 指定目标模块名LOCAL_SHARED_LIBRARIES := 指定依赖的动态库LOCAL_PACKAGE_NAME := 指定And...原创 2020-08-19 13:38:52 · 120 阅读 · 0 评论 -
嵌入式Android底层开发
嵌入式Linux主要有这几部分:Bootloader:主要用于引导Linux内核到内存中,让内核进行自解压并运行zImage:带自解压的Linux内核<Board>.dtb:每个型号的主板都有对应的设备树(保存对应的设备型号等信息,实现驱动和 设备分离)rootfs.img:Linux根文件系统,用于支持Linux内核运行的最小文件系统 (其实Android系统也是属于Linux文件系统的一种)Android系统主要有这几部分...原创 2020-08-19 13:37:07 · 1255 阅读 · 0 评论 -
Androidx 疑难杂症
今天用android studio 3.4创建了一个新项目,然后运行时提示如下信息:Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;查阅各种资料包.原创 2020-07-14 01:14:17 · 1184 阅读 · 1 评论 -
android接入Ijkvideoplayer
加入依赖 // required, enough for most devices. compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8' compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8' // Other ABIs: optional compi...原创 2020-03-22 02:09:10 · 1135 阅读 · 0 评论 -
Android 重复播放音频经常出现问题,无声音等情况
创建全局MediaPlayer对象MediaPlayer mMediaPlayer;重新播放代码//配置播放器 MediaPlayer if (null != mMediaPlayer) { if (mMediaPlayer.isPlaying()) { stopPlay(); } ...原创 2020-03-16 14:46:54 · 2187 阅读 · 0 评论 -
Android系统下如何通过外设实现GPIO中断触发调用Android程序执行
沙雕老板不知道在哪请了个沙雕项目经理,公司产品改进需要,要求在Android系统下通过GPIO硬件中断实现Android程序唤醒,我擦,我特么要死了,还要去搞Linux驱动,在此记录一下实现方式。先上一张Android系统架构图:Android系统底层基于Linux内核,所以要实现硬件中断唤醒Android程序,需要编写Linux驱动,注册对应GPIO中断函数,然后通过异步通知方式将中...原创 2020-02-21 13:21:22 · 4194 阅读 · 3 评论 -
Android 音频播放,实现MediaPlayer重复播放问题
最近开发Android下的音频播放程序,要求播放一首音乐的同时可以随时停止播放,还要在播放的同时能够直接切换到另一首歌曲播放。这个是播放音频的工具类,通过createMedia创建音频播放器,返回播放器句柄public class MediaUtils { public static MediaPlayer createMedia(Context context...原创 2020-01-16 16:50:01 · 6826 阅读 · 0 评论 -
android开发笔记(BaseActivity集成ToolBar控件)
为了能够统一APP风格,通过BaseActivity集成ToolBar控件,去掉冗余的ToolBar代码,简化界面开发。创建Android项目后,修改style文件,将其样式修改为NoActionBar,把application的theme设置为AppTheme <!-- Base application theme. --> <style...原创 2020-01-13 20:39:04 · 501 阅读 · 0 评论 -
android 下插入带麦克风的摄像头,造成板载摄像头无法使用的问题
原因:Nanopi开发板跑Android系统 ,想使用板载麦克风进行录音功能,当插入usb摄像头后造成板载麦克风不能用,查了一下发现默认的声卡设备没有设置。1、进入Android后台adb shell 2、查看当前有哪些声卡设备cat /proc/asound/cards打印如下信息:0 [audiocodec ]: audiocodec - audiocod...原创 2019-09-29 11:20:41 · 1193 阅读 · 2 评论 -
Android中OkSocket的配置和使用
一、OkSocket简介OkSocket是一款基于阻塞式传统Socket的一款Socket客户端整体解决方案.你可以使用它进行基于Tcp协议的Socket通讯.就是我们所说的长连接. 对通讯协议几乎无限制,可以使用PB,可以使用JSON,可以使用XML.只要可以序列化成Byte数组的对象都可以传输. 兼容所有语言写的Socket服务端,解决了Tcp通讯中头疼的粘包拆包问题,断线重连问题,心...原创 2022-01-03 20:59:02 · 4837 阅读 · 1 评论 -
Android JNI学习笔记(一)
JNI原理框图Java是跑在虚拟机上的,是与平台无关的,但是有时候不得不采用本地代码来执行,像一些对运行效率比较高的功能,与底层相关的一些功能都需要采用本地代码执行。JNI基本类型 Java代码中的数据可能需要传递到Jni层c/cpp中,那么就需要进行数据类型的转换JAVA类型 Jni层的类型 各个平台对jni类型的定义 占用的字节数 boolean jboolean unsign...原创 2018-05-24 18:41:06 · 385 阅读 · 0 评论 -
AndroidStudio中ButterKnife 的配置和使用
1、 配置ButterKnife 在项目目录下找到build.gradle配置文件,添加内容如下// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { jcent...原创 2018-05-04 09:09:29 · 983 阅读 · 0 评论