![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓
文章平均质量分 56
希哈科技
希哈科技 (XIHA) 致力于成为全球领先的AIoT产品与技术服务解决方案提供商。把 “赋能万物,机器智能” 作为核心价值观。相信所秉承的 “星球万物,智慧物联” 的使命,会持续为客户创造长期价值。
展开
-
Android 获取网络时间而非手机系统时间
项目中有时候会用到获取网络时间来进行倒计时,但是获取系统时间和手机本地的时间是同步的,如果手机时间不对,那么获取的时间也是手机本地不对的时间。多的不说了上代码private void getCalendarTime(){ final Calendar c = Calendar.getInstance(); c.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); String mYear = Strin...转载 2021-09-06 12:25:32 · 1322 阅读 · 1 评论 -
Android学习之拷贝assets文件夹下面的资源
/** * 复制文件 * * @param context 上下文对象 * @param zipPath 源文件 * @param targetPath 目标文件 * @throws Exception */ public static void copy(Context context, String zipPath, String targetPath) throws Exception{ if (TextU...转载 2021-09-06 11:26:26 · 711 阅读 · 0 评论 -
android studio 删除无用的import快捷键
windows下:Ctrl+Alt+Omac os下:command+Alt+O转载 2021-09-06 11:23:34 · 548 阅读 · 0 评论 -
Android开机自启动服务的写法
首先AndroidManifest.xml中<application>结点中要加入一段广播接收器接收name为"android.intent.action.BOOT_COMPLETED"的开机广播,其中"com.example.noemhost.BootBroadcastReceiver"就是让系统接受到广播之后通过反射调用的广播接收类: <!--随着安卓系统启动而启动--> <receiver android:name="com.exampl...转载 2021-09-06 11:19:46 · 1014 阅读 · 0 评论 -
【Android技巧】通过am完成发送开机广播等操作
前言:许多应用都有接收开机广播,进行一些操作的功能,每次调试这些功能总是要重启机器很麻烦,庆幸的是,我们可以在终端通过安卓自带的am命令来发送开机广播,省去了等待的时间。发送开机广播的命令如下am broadcast -a android.intent.action.BOOT_COMPLETED类似的,我们可以使用am broadcast -a xxaction来发送广播后续,我将再添加进其他am的使用。————————————————版权声明:本文为CSDN博主「邱小琪Yogi」.转载 2021-09-06 11:16:25 · 726 阅读 · 0 评论 -
Android中如何判断service是否启动并停止
/** 判断服务是否启动,context上下文对象 ,className服务的name*/public static boolean isServiceRunning(Context mContext, String className) {boolean isRunning = false;ActivityManager activityManager = (ActivityManager) mContext.getSystemServ...转载 2021-09-06 11:15:19 · 1340 阅读 · 0 评论 -
Android获取当前时间戳(四种方法)
//获取时间戳long timecurrentTimeMillis = System.currentTimeMillis();long timeGetTime =new Date().getTime();long timeSeconds = System.currentTimeMillis();long timeMillis = Calendar.getInstance().getTimeInMillis();Log.d("test", " 当前时间戳1->:"+timecur.转载 2021-09-06 11:08:41 · 6615 阅读 · 0 评论 -
Android获取网络时间的方法
一、通过免费或者收费的API接口获取1、免费QQ:http://cgi.im.qq.com/cgi-bin/cgi_svrtime 淘宝:http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp 苏宁:http://quan.suning.com/getSysTime.do2、收费详情:标准北京时间二、通过访问某个地址并获取时间1、HTTP协议访问某个网站原理:HTTP协议的响应体中带有时间 HTT转载 2021-09-06 11:06:00 · 2792 阅读 · 0 评论 -
Android 发送自定义广播
Android 广播机制简介广播主要分为两种类型,标准广播,有序广播项目完整代码https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter5发送标准广播在发送广播之前,需要定义一个广播接收器来准备接收此广播才行。新建MyBroadcastReceiverpublic class MyBroadcastReceiver extends BroadcastReceiver { private..转载 2021-08-11 18:12:57 · 620 阅读 · 0 评论 -
Android开机启动shell脚本(Android 8.0测试OK)
Android 下做开机启动shell脚本的大致流程如下:目录写shell脚本为脚本写te文件在init.rc中启动脚本添加Selinux权限写shell脚本比如新建一个init.test.sh,内容如下:#!/system/bin/sh###注意这里的开头一定要写正确,android一般是/system/bin/sh 或/system/xbin/sh, linux下的是/bin/sh。写错了是执行不了的,不要以为有#没有影响。#####这里建议测试时直接设置一个属性,不建..转载 2021-08-11 17:48:40 · 2914 阅读 · 0 评论 -
android判断文件是否是图片文件的方法
判断一个文件是否是图片文件的方法,采用BitmapFactory去decode然后根据返回的Options参数来确定: public static boolean isImageFile(String filePath) { Options options = new Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(filePath, options);...转载 2020-05-11 15:00:10 · 2591 阅读 · 0 评论 -
【Android开发】Bundle机制
Bundle在Android开发中十分常见,常用于以下场合:1.Activity状态数据的保存与恢复涉及到的两个回调:void onSaveInstanceState (Bundle outState)、void onCreate (Bundle savedInstanceState)2.Fragment的setArguments方法:void setArguments (Bundle args)3.消息机制中的Message的setData方法:void setData (Bundle data)转载 2020-05-11 14:51:59 · 290 阅读 · 0 评论 -
Android-执行命令行脚本
方式一:Runtime.getRuntime().exec(cmd);方式二:先是放入一个String数组,空格用,号代替,将cmd填入.涉及到静默安装的,这里需要root权限 String[] args = {"pm", "install", "-t", "-r", apkPath, "--user", "0"}; exeCmdArgs(args);// 执行private static void exeCmdArgs(String[] args) ...转载 2020-05-11 14:51:02 · 623 阅读 · 0 评论 -
Android消息推送原理
出处:https://www.jianshu.com/p/969e83d10680定义在用户未打开App时,App主动向用户推送服务器最新消息。如下图:作用产品的角度:功能需要,比如说资讯类产品的新闻推送、工具类产品的公告推送等等运营的角度:活动运营需要,比如说电商类产品的促销活动;召回用户 / 提高活跃度等等作为开发者,不要有需求就接,应该多思考、多理解用户 / 功能的使用场景,有助于我们更好地去选择合适的开发方式储备知识操作系统有自身的消息推送功能(系统级..转载 2020-05-09 15:19:52 · 807 阅读 · 0 评论 -
性能优化工具(九)-LeakCanary
一、简介使用MAT来分析内存问题,有一些门槛,会有一些难度,并且效率也不是很高,对于一个内存泄漏问题,可能要进行多次排查和对比才能找到问题原因。 为了能够简单迅速的发现内存泄漏,Square公司基于MAT开源了LeakCanary二、使用在app build.gradle 中加入引用:dependencies {debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'releaseCompile 'com.squa.转载 2020-05-09 15:08:45 · 212 阅读 · 0 评论 -
Android Camera2+HAL3架构
整体架构概述Android Camera整体框架主要包括三个进程:app进程、camera server进程、hal进程。进程之间的通信都是通过binder实现,其中app和camera server通信使用aidl,camera server和hal通信使用hidl。Android Camera2整体架构如下图:大致分为这几个部分:Application framework 这一层是用于给APP提供访问hardware的Camera API2,通过binder来访问camera servi转载 2020-05-09 14:47:02 · 948 阅读 · 0 评论 -
android6.0源码分析之Camera API2.0简介
前面几篇主要分析的是android Camera API1.0的架构以及初始化流程,而google在android5.0(Lollipop)开始对Camera的架构进行了调整,为了适应HAL3,新添加实现了CameraDeviceClient,而Camera API1.0已经被deprecated(即可能在更新的版本里会不支持此API).接下来,我将会分如下几篇文章来分析Camera2android6.0源码分析之Camera API2.0简介android6.0源码分析之Camera2 HAL..转载 2020-05-09 10:51:23 · 174 阅读 · 0 评论 -
单元测试的原则
Right. 结果是否正确. 首先,我们需要知道什么是正确的结果. 对于有大量数据的测试,考虑使用单独的外部文件来存储测试数据. Boundary. 主要是CORRECT 原则. Conformance. 一致性. Ordering. 顺序性. 有序或无序的. 一个很大的数据集合中某个数据的位置. Range. 值是否位于合理的最大最小值之间. Refer...转载 2020-05-07 17:39:17 · 1291 阅读 · 2 评论 -
logcat命令介绍
1.android log系统2.logcat介绍logcat是android中的一个命令行工具,可以用于得到程序的log信息log类是一个日志类,可以在代码中使用logcat打印出消息常见的日志纪录方法包括: 方法 描述 v(String,String) (vervbose) 显示全部信息 d(String,Str...转载 2020-05-07 16:51:03 · 4627 阅读 · 1 评论 -
Android 计算方法运行时间
常规计算方法运行时间在一些耗时的操作中,我们需要计算方法运行了多少时间,以便于我们分析代码。常规的方法主要是在方法(函数)执行前得到当前时间戳 startTime ,方法执行后再次取当前时间 endTime , 方法运行时间 runTime = endtime - startTime ,见下面代码。long startTime = System.currentTimeMillis(); //...转载 2020-04-16 15:19:38 · 1049 阅读 · 0 评论 -
JAVA中使用alibaba fastjson实现JSONObject、Object、Json字符串的转换
#####Object转JSON字符串:String jsonStr = JSONObject.toJSONString(object);1#####JSON字符串转JSONObject:JSONObject jsonObject = JSONObjcet.parseObject(jsonStr);1#####JSON字符串转Object对象T t = JSON.parseOb...转载 2020-04-16 15:17:27 · 393 阅读 · 0 评论 -
android gradle错误 解决办法 (汇总 不定期更新)
1. Could not find com.android.tools.build:aapt2:3.3.2-5309881build失败,报错解决办法:在项目下的build.gradle repositories下加入google()buildscript { repositories { jcenter() google() }...转载 2020-04-16 15:16:33 · 3228 阅读 · 3 评论 -
android手机信号强度
android手机信号强度检测Android开发之获取网络类型(WIFI、2G、3G、4G)和运营商名称wifi 和 手机网络信号强度的获取不同要注意信号单位android定义了2种信号单位:dBm和asu。信号强度单位:dBm(1毫瓦的分贝数)和asu(alone signal unit 独立信号单元)。它们之间的关系是:dBm =-113+2asu,这是googl...转载 2020-04-16 15:15:31 · 2521 阅读 · 0 评论 -
AtomicBoolean类实现
背景知识:sun.misc.Unsafe 类的运用,参见 http://ifeve.com/sun-misc-unsafe/ volatile关键字作用,http://www.cnblogs.com/dolphin0520/p/3920373.html介绍:AtomicBoolean 是atomic包下第一个类,是一个原子级的boolean的实现。实现:AtomicBoolean ...转载 2020-04-16 15:13:50 · 243 阅读 · 0 评论 -
Android JNI学习(五)——Demo演示
本系列文章如下:Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Native相互调用 Android JNI学习(四)——JNI的常用方法的中文API Android JNI学习(五)——Demo演示我们这里做一个简单的计算器demo,其中运算的逻辑由N...转载 2020-03-31 17:45:47 · 411 阅读 · 0 评论 -
Ubuntu16.04下的MQTT.fx安装和配置
一、安装可到<这里>进行下载接着在终端输入sudo dpkg -i mqttfx-1.7.1-64bit.deb解压安装二、配置转载 2020-03-30 11:46:52 · 1346 阅读 · 0 评论 -
安卓Log框架推荐
一般情况下,平时我们对于log的输出并没有太多的需求,只需要能够给输出,在logcat上能看,能够方便的开关debug就够了。想炫酷一些可以打开AndroidStudio的Settings然后搜索Logcat可以为不同级别的log输出设置不同的颜色。但是也会有一些不同的需求和扩展,所以就整理了一些大神们的一些开源的Log框架。0. logger简单,漂亮,功能强大Android log框架...转载 2020-03-30 11:40:22 · 739 阅读 · 0 评论 -
安卓线程池的原理及其应用
一:使用线程池的原因在android开发中经常会使用多线程异步来处理相关任务,而如果用传统的newThread来创建一个子线程进行处理,会造成一些严重的问题:1:在任务众多的情况下,系统要为每一个任务创建一个线程,而任务执行完毕后会销毁每一个线程,所以会造成线程频繁地创建与销毁。2:多个线程频繁地创建会占用大量的资源,并且在资源竞争的时候就容易出现问题,同时这么多的线程缺乏一个统一的管...转载 2020-03-30 11:37:55 · 283 阅读 · 0 评论 -
Android安装App出现:“该文件包与具有同一名称的现有文件包存在冲突”的解决方法
由于做项目,拿魅族手机开发调试App,之前一直用AS直接Build之后安装App,没什么问题。最近用AS发布App,使用魅族手机安装时,提示“该文件包与具有同一名称的现有文件包存在冲突”,卸载原来的App再安装也会出现这个问题,在其他手机卸载原来的App就可以重新安装。以为是签名出错,改了很久签名,怎么都不行,很迷!想想我都没有改过签名,怎么会有问题呢?......后来在魅族吧找到答案,感谢魅友的...转载 2020-03-30 11:31:05 · 12049 阅读 · 0 评论 -
安卓LocalBroadcastManager和BroadcastManager区别
android中有两种广播机制,一种是BroadcastReceiver,另一种是LocalBroadcastManager。现在来简单介绍一下两者。一、应用场景1、BroadcastReceiver用于应用之间的传递消息;2、而LocalBroadcastManager用于应用内部传递消息,比broadcastReceiver更加高效。二、安全1、BroadcastRecei...转载 2020-03-30 11:21:33 · 1970 阅读 · 0 评论 -
Android Studio打包生成APK教程
一、修改版本和指定生成APK文件名【可选】将项目切换到Project视图,打开app目录下的build.gradle文件1.1 修定软件版本如1.2图所示。versionCode是app的大版本号,为数值类型,默认为1我这里改为2。versionName是app的具体版本号,为际符串类型,默认为1.0我这里改为2.3。1.2指定生成的APK文件名一样是在buil...转载 2020-03-31 17:46:05 · 1553 阅读 · 0 评论 -
对于android.intent.action.MAIN和android.intent.category.LAUNCHER的理解
当我们使用Android Studio创建一个工程并生成一个Activity时,经常可以在清单文件中看到如下的代码: <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.int...转载 2020-01-09 17:02:19 · 4383 阅读 · 0 评论 -
pm命令介绍与包名信息查询
1.pm命令介绍pm工具为包管理(package manager)的简称可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、控制应用pm工具是Android开发与测试过程中必不可少的工具,shell命令格式如下:pm <command>2.包名信息查询shell模式下:pm list packages [options] [FILTER]...转载 2020-01-09 17:00:09 · 2888 阅读 · 0 评论 -
adb启动程序命令:adb shell am start
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.启动的方法为adb shell# am start -n {包(package)名}/{包名}.{活动(activity)名称}第一种情况: 从源代码,得知包名。程序的入口类可以从每个应用的AndroidManifest.xml的文件中得到,以计算器(calculator)为...转载 2020-01-09 16:58:30 · 6807 阅读 · 0 评论 -
linux下scp 、ssh非22端口的服务器操作
linux下scp 、ssh非22端口的服务器操作scp指定非默认22端口,远程copy,例如:scp -P 7777 2015_08_1*.redis.dump.tar root@222.186.56.18*:/my/backup/备注:大Pssh指定非默认22端口,远程连接,例如:ssh -p 7777 root@222.186.56.18* "cd /my/backup/; ....转载 2020-01-09 16:54:17 · 699 阅读 · 0 评论 -
android应用开发之intent的妙用一
相信做android应用开发的朋友对intent组件都已经是相当熟悉了,这里鄙人总结一下intent的妙用,希望对大家有帮助。intent妙用之编写自己的android主界面众所周知,android的主界面名为laucher2,功能强大,会在android启动之后运行,也是所有其他应用程序的入口程序。那么,如何让自己的应用程序取代laucher2的位置,成为android系统的主界面呢?其...转载 2020-01-09 16:52:09 · 163 阅读 · 0 评论 -
adb命令大全
adb的全称为Android Debug Bridge.是android司机经常用到的工具.但是问题是那么多命令写代码已经够费劲了,过段时间在次使用时压根记不住呀.本次的大餐就是为此开篇的.这一次我们不记命令.要用随时过来ctrl+F呀.哇哈哈哈!本篇ADB集锦不管是常用还是冷门的都有.客观您随意看.你能在本篇文章中收获什么? adb基本指令 Shell AM&PM...转载 2020-01-09 16:50:39 · 503 阅读 · 0 评论 -
Android Studio下三种包名的修改方法
Android下有三个地方涉及到包名:工程包名、AndroidMainfest文件中包名以及gradle文件中的applicationId所指的包名。需要注意的是工程包名可以和另外两种包名不同。Eclipse时代AndroidManifest文件中的包名兼具了App的唯一标识符和App资源(R文件)引用包名的双重功能;Android Studio时代做到了这两个功能的分离:即And...转载 2020-01-09 16:48:15 · 452 阅读 · 0 评论 -
android实现程序开机自启动
在安卓中,想要实现app开机自动启动,需要实现拦截广播android.permission.RECEIVE_BOOT_COMPLETED,并且需要使用静态注册广播的方法(即在AndroidManifest.xml文件中定义广播)1、先在AndroidManifest.xml文件中定义广播和声明权限<uses-permission android:name="android.permi...转载 2020-01-09 16:46:32 · 551 阅读 · 0 评论 -
libcore.io.ErrnoException: kill failed: ESRCH (No such process)
这个问题遇到不止一次,记下解决方法备忘。运行稳定性脚本时框架崩溃,打印的堆栈信息如下:libcore.io.ErrnoException: kill failed: ESRCH (No such process)at libcore.io.Posix.kill(Native Method)at libcore.io.ForwardingOs.kill(ForwardingOs.java...转载 2020-01-09 16:43:46 · 857 阅读 · 0 评论