安卓
文章平均质量分 52
普通网友
这个作者很懒,什么都没留下…
展开
-
android集成第三方库
让编译器知道你用到了库里的什么文件和依赖包,这样你import的时候编译器会自己去找!1.把文件复制到app同级别libs里。3.早app的build里加入。2.在appbuild里加入。告诉编译器库在哪个文件夹下。原创 2022-10-19 22:02:05 · 706 阅读 · 0 评论 -
Android Studio 上ass上直接运行java代码就像eclipse一样
现在可以运行 MainJava 的 main 方法了,按照下图指示的方式,指定运行的 main 函数即可。在 .idea 的 gradle.xml 中标注的位置增加下面的内容即可。其实处理起来还是比较简单,如下图所示。原创 2022-10-17 10:08:13 · 618 阅读 · 0 评论 -
android项目中使用tess-two常见问题解决办法
init总是程序崩溃并提示A/libc: FORTIFY: pthread_mutex_lock called on a destroyed mutex (0x73ae078d08)这是因为,训练库有问题,重新下载安装即可。原创 2022-10-04 16:35:21 · 1667 阅读 · 0 评论 -
as 关于gradle配置文件的介绍
项目根目录中gradle\wrapper\gradle-wrapper.properties。用来设置gd的属性。就是gd构建项目用到的各种资源或者比如变量之类的。2.build.gradle,项目中所有模块默认的gd构建配置.下文中gradle使用省略形式:gd。一:项目(project)中的文件;原创 2022-10-04 16:26:36 · 809 阅读 · 0 评论 -
android安卓12/11文件读写权限的设置
安卓11的时候继续强化对SD卡读写的管理,引入了MANAGE_EXTERNAL_STORAGE权限,而之前的WRITE_EXTERNAL_STORAGE已经失效了。ToastUtil.showCenterToast("文件不存在,创建成功");6.0之前是不需要动态申请权限的,直接在manifest中申请即可以正常使用。并且MANAGE_EXTERNAL_STORAGE权限只能跳转设置页面申请。在返回的结果里面进行判断,如果给予了权限,则进行写入操作。2.Android 6.0 SDK=23 及以上。原创 2022-10-03 11:34:35 · 4415 阅读 · 0 评论 -
as 正确配置gradle并运用阿里云下载源的方法
增加下载地址,然后同步。(如果下载不下来,可以提前下载,然后放到gradle相应的目录里)。2@ bulid.gradle(项目目录)原创 2022-10-02 00:25:11 · 1776 阅读 · 0 评论 -
防止安卓崩溃的工具类
Android开发过程中,因为各种原因导致app崩溃的现象层出不穷,异常奔溃带来的用户体验及其差劲,尤其当一个小小的功能页面的问题导致app整体奔溃带来的操作感受极差,防止app奔溃,虽然不能从根本解决用户体验的基本问题,但可以在此基础上处理,并带来更好地错误交互处理方法。其中, AppParams. DEBUG_EX 是封装的全局参数,调试时置成True,报错容易看到,不调试置成false,防止报错,生成错误日志。Log. i ( TAG , "uncaughtException: 先捕捉到" );原创 2022-09-30 17:03:58 · 812 阅读 · 0 评论 -
安卓Windows界面相关的类
该抽象类仅仅有一个子类PhoneWindow。Activity的显示界面对象,并作为顶层View被加入到WindowManager中。Window提供了标准的UI显示策略:界面背景、标题区域、默认的事件处理。注意:逻辑显示屏和物理显示屏不同,逻辑显示屏能够被映射到多个物理显示屏上(比方在Presentation的时候)每一个WindowManager实例都和一个特定的Display对象绑定在一起。原创 2022-09-29 11:57:47 · 53 阅读 · 0 评论 -
DDMS的打开以及查看手机页面布局层次
有时候看到一个比较好的界面或体验好的界面,就忍不住想看看其实现结果,那么可以通过DDMS工具来看相连设备层次以及使用哪些view。如果知道电脑的架构可以将对应exe文件做一个快捷启动(桌面快捷式)。能看到 Tool–Layout Inspector 这一选项,但这个操作只能查看debug模式的应用。上图是查看微信布局展现。说明,这里查看的就是显示在当前屏幕上的界面(不论debug和release)2请移步到Android SDK的目录,并且进入到tools目录,打开monitor.bat即可。原创 2022-09-28 16:57:52 · 402 阅读 · 0 评论 -
启用守护进程使子进程与父进程完全分离
daemon模块, daemon是存放在raw目录下的elf文件,它是一个守护进程,保护应用不被杀死。daemon原理是fork出子进程之后,让子进程成为新的会话的领头进程,并与其父进程的会话组和进程组脱离,紧接着就是在子进程中定时去启动java层配置的任务。这里它保证PushCoreService和ChapingCoreService一直在后台运行原创 2016-01-27 00:37:42 · 2266 阅读 · 0 评论 -
设置webview背景图片
webView.setBackgroundResource(R.drawable.bg); webView.setBackgroundColor(Color.argb(0, 0, 0, 0));原创 2016-04-05 21:16:27 · 1284 阅读 · 0 评论 -
如何保证Android与服务器的DES加密保持一致
在我们的应用程序涉及到比较敏感的数据的时候,我们通常会对数据进行简单的加密。在与服务器之间的数据交互中,除了可以使用post请求来增强数据的安全性之外,我们可以使用常见的加密算法,对数据进行加密。今天主要介绍的是DES加密算法。首先,DES属于一种对称的加密算法,所谓对称,就是说加密和解密使用的都是同一个密钥,那么在我们实际应用的时候,就是指服务器和客户端进行加密解密的时候,使用的是一个相原创 2016-03-22 11:39:41 · 364 阅读 · 0 评论 -
UIAutomator定位Android控件的方法实践和建议
1. 背景为了和前文达成一致,这次的实践对象同样也是使用SDK自带的NotePad应用,同样是尝试去获得在NotesList那个Activity里的Menu Options上面的那个Add note菜单选项。以下是UIAutomatorViewer对界面的一个截图.但有一个例外的地方是下文的” 通过伪xpath方法定位控件 “章节实例需要使用到的是NoteEditor这个a原创 2016-02-24 23:07:48 · 1400 阅读 · 0 评论 -
Android判断屏幕状态与屏幕解锁和锁定
主动判断屏幕是否亮着:public boolean isScreenOn(Context context) { PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); if (pm.isScreenOn()) { return true;原创 2016-02-20 21:46:14 · 5651 阅读 · 0 评论 -
uiautomatorviewer获取当前屏幕中的各个元素信息包括类名
android开发环境配置好之后,进入android sdk目录下tools目录下,打开uiautomatorviewer.bat。会打开cmd命令,说明正在启动uiautomatorviewer.bat,耐心等待启动。uiautomatorviewer界面被打开之后,已启动完成。原创 2016-02-20 16:53:00 · 4360 阅读 · 0 评论 -
DES加解密
package com.qust.rollcallstudent.utils;import java.security.InvalidAlgorithmParameterException;import java.security.Key;import java.security.spec.AlgorithmParameterSpec;import java.util.Locale;原创 2016-03-05 16:34:48 · 380 阅读 · 0 评论 -
Android 返回桌面的操作
最近在做最小化的应用,最小化第一个现象就是能回到桌面。android回到桌面的方法其实很简单,发起一个startActivity就行。 Intent i = new Intent(Intent.ACTION_MAIN); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addCategory(Intent.CATEGORY_HOME); startA原创 2016-02-27 23:48:19 · 3996 阅读 · 0 评论 -
NDK开发基本知识
(3) NDK开发中乱码问题解决乱码思路 : C语言编译的时候用的是 ISO-8859-1 码表进行编码, 如果我们使用C语言jni开发, 需要进行转码操作;-- 将ISO-8859-1转为UTF-8字符: String string = new String(str.getBytes("iso8859-1"), "UTF-8");示例原创 2016-03-27 16:49:20 · 742 阅读 · 0 评论 -
c语言实现des加密
#include #include #include #include #define PLAIN_FILE_OPEN_ERROR -1#define KEY_FILE_OPEN_ERROR -2#define CIPHER_FILE_OPEN_ERROR -3#define OK 1typedef char ElemType;/*初始置换表IP*/int原创 2016-03-27 22:24:03 · 938 阅读 · 0 评论 -
开启和关闭android移动网络
开启和关闭移动数据网络有两种方法:一种是通过操作系统的数据库改变APN(网络接入点),从而实现开启和关闭移动数据网络,另一种是通过反射调用系统(ConnectivityManager)的setMoblieDataEnabled方法,通过操作该方法开启和关闭系统移动数据,同时也可以通过反射调用getMoblieDataEnabled方法获取当前的开启和关闭状态。 第一种方式:原创 2015-04-12 19:58:24 · 1791 阅读 · 0 评论 -
android 代码实现手机自动恢复出厂设置不需要权限
需要激活成为设备管理器DevicePolicyManager mDPM;boolean active = mDPM.isAdminActive(mDeviceAdminSample);if (active) {mDPM.wipeData(0);}原创 2016-11-02 20:59:19 · 3364 阅读 · 2 评论 -
Intent的Action属性大全
Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”。目标组件一般要通过Intent来声明自己的条件,一般通过组件中的元素来过滤。Intent在由以下几个部分组成:动作(action),数据(data),分类(Category),类型(Type),组件(Component),和扩展信息(Extra)。Intent在寻找目原创 2016-06-06 17:18:36 · 687 阅读 · 0 评论 -
Android 系统功能跳转
1. ACTION_ACCESSIBILITY_SETTINGS : // 跳转系统的辅助功能界面 Intent intent = newIntent(Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivity(intent); 2. ACT原创 2016-06-06 16:25:09 · 366 阅读 · 0 评论 -
安卓通过layout_weight按比例布局
在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举了一种情况,然后自己通过实验和一些比较好的文章总结了一下,特此记录下来,以备以后所用。Layout_weight是线性布局,也就是LinearLayout里面用到的,下面通过实验来看这个Layout_weight的特性。1.当控件的属性Android:layout_width="fill_parent"时,布局文件如下:原创 2016-06-06 15:52:43 · 406 阅读 · 0 评论 -
Android 5.0以后版本打开“有权查看使用情况的应用”
前段时间曾做过一个应用锁的功能,但是在android5.0版本后获取栈顶应用的方法getRunningTask方法被google给屏蔽掉了,然后在网上各种找资料啊,最后找到一个折中的办法,使用UsageStatsManager获取,但是这种获取方法需要用户在手机上赋予APP权限才可以使用,就是在安全-高级-有权查看使用情况的应用 在这个模块中勾选上指定APP就可以获取到栈顶的应用名。那么现在问题来原创 2016-04-19 21:37:11 · 2905 阅读 · 0 评论 -
android 5.0以上,判断当前应用是在前台还是后台
在android 5.0 之后getRunningTask()方法被废弃private boolean isAppIsInBackground(Context context) { boolean isInBackground = true; ActivityManager am = (ActivityManager) context.get原创 2016-04-13 18:30:46 · 629 阅读 · 0 评论 -
在android 5.0以上,如何判断当前应用是在前台还是后台
在android 5.0 之后getRunningTask()方法被废弃private boolean isAppIsInBackground(Context context) { boolean isInBackground = true; ActivityManager am = (ActivityManager) context原创 2016-04-13 18:29:17 · 603 阅读 · 1 评论 -
判断AccessibilityService是否已经启用
Note : Change value of final String service = "com.test.package.name/com.test.package.name.YOURAccessibilityService" with your Service. // To check if service is enabledprivate boolean isAccessib原创 2016-01-27 00:32:48 · 5785 阅读 · 0 评论 -
ccessibilityEvent.TYPE_WINDOW_STATE_CHANGED作为监听的原因
这里需要注意的是WECHAT_LAUNCHER,微信主界面以及聊天界面应该采用的FragmentActivity+Fragment这样导致如果用户进入到微信主界面则会调用AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED,导致再次进入微信聊天界面不会再调用AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED,而会调用Acce原创 2016-01-27 00:18:36 · 8799 阅读 · 0 评论 -
AccessibilityService之微信抢红包辅助功能实现
这次我们来使用AccessibilityService实现一个微信抢红包的辅助工具。先来一个简单的效果图,最后会有一个完整的效果图: 首先,先回想一下微信红包的领取流程。1.通知栏出现微信红包的消息2.点击通知栏,进入领取红包界面3.点击领取红包,领取成功后,进入拆红包界面4.拆红包,显示获得金额5.等待下一个红包原创 2016-01-26 23:56:37 · 1915 阅读 · 0 评论 -
Android--多线程之Handler
前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不允许Activity新启动的线程访问该Activity里的UI组件,这样会导致新启动的线程无法改变UI组件的属性值。但实际开发中,很多地方需要在工作线程中改变UI组件的属性值,比如下载网络图片、动画等等。本篇博客主要介绍Handler是如何发送与处理转载 2015-04-13 18:42:37 · 316 阅读 · 0 评论 -
android中Runtime.exec的参数
public Process exec(String[] cmdarray, String[] envp, File dir);这个方法中cmdArray是一个执行的命令和参数的字符串数组,数组的第一个元素是要执行的命令往后依次都是命令的参数,envp中是name=value形式的环境变量设置,如果子进程要继承当前进程的环境时是null。原创 2015-04-20 00:34:56 · 1561 阅读 · 0 评论 -
短信接收顺序
这个方法将短信通过顺序广播播放出去(action是SMS_RECEIVED_ACTION),无论广播是否被中断最后都会调用mResultReceiver,这里会将已读或未读的状态告诉给对方。如果短信广播中间没有受到終止,那么接下来的流程是:PrivilegedSmsReceiver类接收到android.provider.Telephony.SMS_RECEIVED的请求然后调用 intent原创 2015-04-12 19:24:59 · 458 阅读 · 0 评论 -
关键字static、final使用小结
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是原创 2015-04-12 15:54:28 · 340 阅读 · 0 评论 -
NDK开发
一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C转载 2015-04-19 23:35:20 · 346 阅读 · 0 评论 -
解析JSON字符串
json对象:{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" } JSONObject allresult; allresult = new JSONObject(strResult); String result = allresu原创 2015-04-12 20:31:18 · 587 阅读 · 0 评论 -
android 五种数据存储方式
数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是:1 使用SharedPreferences存储数据2 文件存储数据3 SQLite数据库存储数据4 使用ContentProvider存储数据5 网络存储数据 下面将为大家一一详细介绍。 第一种: 使用SharedPreferen原创 2015-04-12 15:39:38 · 569 阅读 · 0 评论 -
Android的startservice和bindservice
一、首先,让我们确认下什么是service? service就是android系统中的服务,它有这么几个特点:它无法与用户直接进行交互、它必须由用户或者其他程序显式的启动、它的优先级比较高,它比处于前台的应用优先级低,但是比后台的其他应用优先级高,这就决定了当系统因为缺少内存而销毁某些没被利用的资源时,它被销毁的概率很小哦。 二、那么,什么时候,我们需要使用service呢转载 2015-04-18 12:18:15 · 379 阅读 · 0 评论 -
Android应用程序永久获取root权限方法
在项目的过程中,有可能会要实现类似360优化大师、安卓优化大师的软件搬家、静默安装等需要root权限的功能,或者类似SET_PREFERRED_APPLICATIONS、MOVE_PACKAGE 等需要系统的权限,必须要有系统签名。咱们拿 软件搬家 来当例子(通过获取系统权限,而不是弹出系统的应用管理界面来搬家): 实现方式:1、想办法获取系统权限,但是这个一般办不原创 2015-04-18 23:16:37 · 494 阅读 · 0 评论 -
Android 情景模式的切换
Android中系统的声音以及振动是通过AudioManager来管理的.切换情景模式只需要两句代码: AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE); //得到AudioManager对象 am.setRingerMode(AudioManager.RINGER_MODE_NORMAL); //参数为 设转载 2015-04-18 18:55:45 · 817 阅读 · 0 评论