关闭

进程保活-双进程守护的正确姿势

做车机的开发免不了在后台开很多服务,做车机的APP跟做普通的手机APP区别在于做车机要用到很多的进程间的通信交互等,一个应用死了,可能导致整个机器都运转不正常了,不会进程间的通信怎么可以,撸起来! 双进程守护,肯定得用到多进程,一个应用可以有多个进程的,如何实现多进程呢,service或者activity等都有一个属性android:process,只要设置起名称就可指定该组件运行在该进程中。在这里...
阅读(50) 评论(0)

Android studio使用JNI全解析(二)

上一篇文章中我们介绍了如何使用JNI,包括环境配置,如何编译C代码变成so库,java如何来调等,那么每次我们要使用C代码时都要在Android工程中编写C代码吗?当然不是,我们只需要使用最终的产物,so库就可以了,我认为使用NDK就只有一个作用,就是把so库生产出来。那么这一篇我们就着重介绍如何使用so库。 一:相应配置 1.1 在工程的main 目录下新建jniLibs目录,注意这里java和j...
阅读(98) 评论(0)

Android Studio下的JNI使用全解析(一)

一:创建工程 1.1 创建新的工程时勾选上Include c++ support,然后一路next 勾选的目的是为了写C代码时有代码提示 1.2 创建完毕之后修改CMake你要生成的so库的名称 1.3 把Src/main/cpp文件夹下默认生成的c文件删除,并把MainActivity中默认生成与JNI有关的代码删除,然后Build->clean Project 二:环境配置 2.1 在lo...
阅读(78) 评论(0)

Gradle签名打包

一:生成签名步骤如下: 点击build->Generate Signed APK 再选择一个新的签名,路径最好是当前项目的根目录 点击OK,稍等片刻,就会在你指定的位置生成一个签名文件,后缀名为.jks使用gradle自动签名打包步骤如下: 打开项目结构面板,可点击File–>Project Structure,也可点击工具栏对应的图标,都可以打开 打开后,选择对应的module,选择...
阅读(61) 评论(0)

Gradle自定义项目结构

一:项目如何实现eclipse和Android studio的兼容 在Android开发中,很多老项目都是使用eclipse开发的,但为了开发的便捷性,我们要使用Android studio,问题来了,一个项目如何兼容Android studio和eclipse? Gradle的基本项目结构起始于main,我们只要在gradle脚本中具体指定各个资源的路径就可以了,比如java文件,资源文件,清...
阅读(51) 评论(0)

Gradle初探

一:Project和Module中的gradle脚本的基本格式 一:project的gradle脚本如下: buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' // NOTE...
阅读(37) 评论(0)

CarRecorder源码解析二(循环录像分析)

循环录像的整体逻辑比较简单,但代码还是比较复杂的,逻辑是刚开机就开始循环录像,每两分钟通过MediaRecorder录制一段视频,当视频所占内存卡的大小到达某一个预设的值时,开始自动删除最老的视频。 ## 一:如何实现开始结束开始的逻辑的?循环录像的入口在surfaceView的生命周期onCreate中 当surfaceView创建的时候,初始化VideoRecorder,在此时开始循环录像。...
阅读(52) 评论(0)

Android studio使用技巧(二:国际化以及代码重构)

一:如何在Android中快速实现国际化 Android中的国际化实际是string.xml文件的国际化,我们来看看具体的实现过程:1.1 . 打开 res->values->string.xml文件 1.2 . 点击右上角的Open Editor 1.3 .在Editor的编辑区,点击左上角的地球符号,选择一个语言,这时就会在res文件夹下生成对应的国际化values 文件夹了 二:...
阅读(86) 评论(0)

Android studio使用技巧(一:快捷键和断点调试)

一:好用的快捷键 ctrl+N 在项目中快速查找某个类 alt+F7 查找某个类、方法被引用的位置,或选中后右键选择find usage 双击shift 全局搜索 ctrl+alt+空格/ctrl+空格 快速代码补全 ctrl+alt+M 提取代码块为方法 ctrl+alt+f 提取变量为常量二:如何打各种不同的断点 条件断点 :在打断点时,如果处在一个循环中,只想让某个条件满足才断的话,就在断点处...
阅读(104) 评论(0)

CarRecorder源码分析(一)随拍随录

主体结构:行车记录仪的代码逻辑全部放在PreviewService中,UI显示也在其中,UI的显示只是在Service中,通过WindowManager实现的,MainActivvity没有什么作用。 MainActivity中的业务逻辑: ### 1 //在onCreate中启动服务,在服务里面根据action来显示UI Intent intent = new Intent(MainAct...
阅读(219) 评论(2)

如何将YUV的byte数组转换为bitmap

//srcData为原始的yuv数组,format为YUV的格式 YuvImage yuv = new YuvImage(srcData, format, width, height, null); ByteArrayOutputStream stream = new ByteArrayOutputStream(); yuv.compressToJpe...
阅读(65) 评论(0)

Android自定义开关

最近在学习自定义view,感觉写业务代码对技术的提高实在有限,就琢磨每天 必须要多学点东西了,我的规划是自定义view、jni,之后再往framework层走,先拓展技术栈,再精进。 不多说先看效果图一:需求分析:首先我们来明确一下需求,有两种方式来控制这个开关,一种是点击,即可切换开关,另一种是通过滑动来控制,这样比起我们一般情况下直接用个图片选择器体验会好一些。二:实现思路:其实思路还是很清晰的...
阅读(79) 评论(0)

Android开发中常见adb命令的使用

前言:在Android开发中,使用adb命令是一个必备的技能,adb使用的情景有很多,比如,要测试自己写的Service或者BroadcastReceiver,直接使用adb命令来发广播或者开启服务,还有如果要看log,但是有时由于IDE的原因,log没有抓到,这是可能就需要用adb 来保存并查看log。一 : adb命令操作文件adb remount:重新挂载分区(操作系统目录之前必须执行)adb...
阅读(116) 评论(0)

进程保活-将Service设置为前台服务

引言:在Android系统中,进程是有优先级的,具体请Google或百度,当系统的内存不够的时候,就会杀死优先级较低的应用,但由于实际的业务需求,有些服务是不能杀死的,比如我们微信接收消息的服务,这时我们就需要提高进程的优先级来防止后台服务被杀死。 具体代码如下//传入notifycation对象的作用是,当将服务设为前台服务后,会在状态栏显示一条通知 public void showCXBRunn...
阅读(114) 评论(0)

TTS在Android中的简单使用

TTS在Android中的简单使用具体使用方法如下 创建TextToSpeech对象,同时传入OnInitListener监听是否成功 为tts设置语言 播放文本 代码如下: package com.example.testtts;import android.speech.tts.TextToSpeech; import android.support.v7.app.AppCompatActiv...
阅读(286) 评论(0)
16条 共2页1 2 下一页 尾页
    个人资料
    • 访问:2738次
    • 积分:182
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论