Android
文章平均质量分 54
云水-禅心
淡看庭前花开花落,漫随天外云卷云舒。
展开
-
Android JNI 开发说明和示例
Android中开发JNI,把关键业务逻辑的代码使用C/C++的native实现可以隐藏代码逻辑;原创 2023-05-08 15:50:31 · 691 阅读 · 0 评论 -
Android gradle编译错误OOM:java heap space的解决办法
android项目开发中gradle编译大项目出现OutOfMemeryError OOM:java heap space问题,探寻解决办法原创 2022-07-29 15:00:32 · 1727 阅读 · 0 评论 -
谷歌的json解析器Gson在Android/Java中的常用工具类
gson解析器,可实现子类和json字符串之间互转原创 2022-07-18 16:45:31 · 2838 阅读 · 0 评论 -
Android设备刷Device-owner说明
Android开发中,为了提高应用权限,可通过adb命令设置应用为device-owner(设备管理者/拥有者),提高设备管理器的权限,更多的管理设备功能.原创 2022-07-14 15:33:53 · 4431 阅读 · 0 评论 -
Android中adb命令查看和获取base.apk
Android中adb命令查看base.apk安装路径, 拉出base.apk,可直接在其他设备安装.原创 2022-06-18 16:09:49 · 5233 阅读 · 0 评论 -
Socket通信java.io.IOException: Broken pipe问题分析和解决
场景android程序开发中,Java层与JNI层使用socket进行通信:java层提供服务 @Override public void run() { //.............省略一万行 while(true){ //.............省略一万行 try { //等待客户端请求 logi(TAG, "run: Rea..原创 2022-05-18 18:28:43 · 6023 阅读 · 0 评论 -
二维数组遍历方式(先行后列、先列后行)差异测试
package com.hulk.java.test;/** * 二维数组遍历 * 二维数组遍历耗时测试数量:5000 * 先行后列耗时1:46801759 * 先列后行耗时2:389399550 * 二维数组遍历耗时测试数量:50 * 先行后列耗时1:9087 * 先列后行耗时2:9482 * @author zhanghao * */public class DoubleArrayTest { public static final int COUNT = 5000; .原创 2022-04-21 16:45:59 · 1420 阅读 · 0 评论 -
Git submodule 子模块的管理和使用说明
Git submodule 子模块的管理和使用说明, 用于Android开发中和其他git管理代码库的项目中原创 2022-02-14 11:44:13 · 2842 阅读 · 0 评论 -
C/C++中计算字符串数组长度方法
C/C++中计算字符串数组长度方法:int len = sizeof(array)/sizeof(array[0])注意:字符串数组作为擦参数传递给其他函数时,对方函数中sizeof(array)返回值始终未4,所以,如果一定要通过函数处理数组时,必须把数组长度一起传过去 int size = sizeof(ignore_file_names); int firstSize = sizeof(ignore_file_names[0]); int len = siz...原创 2021-11-24 20:54:32 · 4645 阅读 · 0 评论 -
C/C++常用函数总结
Android NDK开发中,CC++常用函数总结原创 2021-11-24 20:51:12 · 1920 阅读 · 0 评论 -
Android 中编译运行java代码的方法
Android 中编译java代码的方法项目根目录 .idea/gradle.xml 文件 <GradleProjectSettings> 标签下增加如下标签<option name="delegatedBuild" value="false" /原创 2021-11-19 10:49:25 · 584 阅读 · 0 评论 -
Android系统中导出已安装的apk说明
hulk@hulk-PC:~/Desktop$ adb shell pm list packagespackage:com.huawei.scenepackpackage:com.huawei.hifolderpackage:com.czb.chezhubangpackage:com.android.cts.priv.ctsshimpackage:com.huawei.camera..............................package:com.huawei.androi..原创 2021-09-13 17:26:12 · 2040 阅读 · 0 评论 -
Android NDK 开发编译简要说明
概述 在android NDK中开发jni, 可下的c和cpp等文件, 得到.so文件.编译环境配置下载NDK:https://developer.android.com/ndk/guides 上面有使用说明,有时间可仔细阅读.下载ndk后, 不需要安装, 解压到本地某个目录,配置环境变量:Ubuntu环境配置:1. 配置NDK环境变量, 执行如下命令:sudo gedit /etc/profile说明:打开全局环境变量文件,添加NDK的环境变量,就额可以在任意地...原创 2021-09-08 20:44:02 · 783 阅读 · 0 评论 -
Android Apk 反编译和重打包说明 定制资源替换
Android Apk 反编译和重打包说明可参考网站: https://ibotpeaches.github.io/Apktool/install/ 测试环境: Ubuntu 18.04按照上面网站的说明,下载了apktoolhe apktool.jar, 用法如下:反编译hulk@hulk-PC:~/byod/tools/repackage-tools$ apktool d -r demo-app-signed.apk -o testI: Using Apktool 2.5.0 o.原创 2021-07-26 21:28:32 · 711 阅读 · 0 评论 -
Java 版本的 InetAddress Inet4Address or Inet6Address 基本用法
直接通过demo判断地址类型IPv4和IPv6, demo如下:package com.hulk.http.util;import java.net.Inet4Address;import java.net.Inet6Address;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Arrays;/** * InetAddress单元测试 * @author: z.原创 2021-06-19 17:38:32 · 3212 阅读 · 0 评论 -
Git补丁简单用法介绍(打补丁.diff 和 .patch 和 git apply、git am应用)
git apply、git am打补丁.diff 和 .patch生成patchgit format-patch -M master生成指定patch,afc425592dc7dde9317d729d8c65206cfea749fc是commit id,-1是指从当前id开始,向下提交次数,包含此次且计数从1开始。也就是说,我想要打出afc425592dc7dde9317d729d8c65206cfea749fc当前的patch,则命令如下:git format-patch -1 afc4255原创 2021-05-21 23:48:10 · 1664 阅读 · 0 评论 -
Java数字摘要
Java数字摘要工具类public static class DigestUtils { /** * 把二进制数据转化为十六进制字符串 * @param text * @return */ public static String bin2hex(byte[] data) { return String.format("%0" + (data.length * 2) + "X", new BigInteger(1, data)); ...原创 2021-04-22 14:24:20 · 214 阅读 · 0 评论 -
Kotlin学子总结---静态类和静态方法
* Kotlin中定义静态类和静态方法* 整个静态类:* object StaticUtil{* fun method()* ...* }* }* 声明为 object 的类自动生产INSTANCE静态对象,类似Java中的单例. 在其他类通过StaticUtil.其方法.* 类中的部分静态方法* class StaticUtils {** companion object {* // 包裹范围内 属于静态方法* fun metho.原创 2021-04-22 12:47:05 · 801 阅读 · 0 评论 -
Kotlin学子总结---实体类
kotlin的实体类,默认已经存在getter和setter函数, 成员可见性默认public通常不需要显示声明, 但是private和protected需要显示声明1. 构造函数声明方式一通常情况下与java结构差不多, 就是成员变量声明package com.mobile.emm.h5import android.net.Uriimport android.text.TextUtilsimport com.mobile.emm.debugger.Log;/** * 定义的H5原创 2021-04-22 12:42:09 · 1882 阅读 · 0 评论 -
Android夜间模式开发总结
android中新版本的Api 23.0.0后可以使用AppCompatDelegate来实现夜间模式切换:setDefaultNightMode(@NightMode int mode);其中 mode is one of AppCompatDelegate.MODE_NIGHT_*eg: AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); orAppCompatDelegate.setDe...原创 2021-04-21 17:16:26 · 1194 阅读 · 0 评论 -
Android中实现Dex和apk动态加载
Android中实现Dex和apk动态加载一. 原理: android中可实现dex动态加载功能, 通过反射机制,替换系统内部的类加载器,使用自定义的类加载器,可实现动态加载最新的class, 此方法主要用途: (1). 用于替换调系统内部实现内实现class; (2). 实现bug热修复,服务器下发一个dex文件,客户端重启进程事加载新的class,从而声不知鬼不觉的"偷偷"修复bug.二. Dex类动态加载 下面一使用自定义加载assets中的jar文件加以说明...原创 2021-04-01 12:18:20 · 1228 阅读 · 0 评论 -
Android开发okhttp+retrofit+rxJava 之文件上传下载
基于上一篇文章实现了基本的okhttp请求基本用法:https://mp.csdn.net/editor/html/115055910下面结合retrofit和rxJava实现文件上传下载, 带下载进度,.基本介绍.Retrofit是基于okhttp基础上进行高度封装或者包装的产物, 结合rxJava, 可以说是如鱼得水,天作之合, 可以很方便实现网络请求的同步异步切换, 摆脱了以前的AsyncTask和Handler机制. 直接链式写法实现网络切换;1. 基本实现 retrofit的...原创 2021-03-21 22:33:24 · 2066 阅读 · 2 评论 -
Android/Java中okhttp用法介绍
最近Android老项目改造, 之前老代码一直用AndroidHttpClient实现网络请求,存在以下问题1. 版本太老旧, 最近无更新;2. 网络请求模块代码太散乱,不好管理,3. 不支持SSL/TLS1.2以上版本反正就是旧时代的产物, 需要进行整改.于是就开始网络请求模块重构, 组训以下原则:1. 修改网络请求不能修改之前的业务到吗逻辑,包括其他人的代码, 避免引入bug;2.网络请求只能用一两个类实现, 统一管理整个http请求功能, 便于逻辑控制;选择用当...原创 2021-03-21 22:00:43 · 929 阅读 · 1 评论 -
按序打印代码实现举例
在网上无意间看到一个问题:我们提供了一个类:public class Foo {public void first() { print("first"); }public void second() { print("second"); }public void third() { print("third"); }}三个不同的线程 A、B、C 将会共用一个Foo实例。一个将会调用 first() 方法一个将会调用second() 方法还有一个将会调用 third...原创 2021-03-15 19:14:20 · 174 阅读 · 0 评论 -
Java版本Xpath解析Xml文件文本用法说明
java或者Android开发中进程使用到xml解析, 本文讲述Xpath解析方式用法.本文通过代码的方式呈现,不讲理论了. 每个函数和关键代码块都有注释,请看官们注意看即可类解释:XpathParser: Xpath核心解析类,通过该类可以实现xml,可以通过各种方式获取节点和条件查询XpathUtils: xpath解析工具类, 主要解析节点和节点列表信息为常用的对象NadeInfoNodeInfo: 节点信息类XpathTest: java版本的测试类XmlPrinter.原创 2020-09-28 18:31:32 · 397 阅读 · 0 评论 -
Java使用wait和notify实现线程同步
* Java使用wait和notify实现线程同步* wait、notify、notifyAll是Object对象的属性,并不属于线程。函数解释* wait:使持有该对象的线程把该对象的控制权交出去,然后处于等待状态(注:当调用wait的时候会释放锁并处于等待的状态)* notify:通知某个正在等待这个对象的控制权的线程可以继续运行(当前线程先获取锁,使自己的程序开始执行,完成任务后通过notify同样去释放锁,并唤醒正在等待的线程)* notifyAll:会通知所有等待这个对象控制权...原创 2020-09-22 12:31:58 · 921 阅读 · 0 评论 -
Android 11版本适配 API调整
记录android 11版本的API调整:1.SQLiteDatabase API变化:删除旧版本hide的接口:addCustomFunction(String name, int numArgs, CustomFunction function)如果采用技术手段骗过编译器或者使用反射调用给接口,就会出现崩溃异常, Android 11版本修改后的替换接口有两个:(1).设置自定义标量函数:setCustomScalarFunction(@NonNull String fun...原创 2020-09-17 17:27:50 · 1007 阅读 · 0 评论 -
Android多进程加载资源失败问题分析:android.content.res.Resources$NotFoundException: Resource ID #0x7f08XXXX
在Android开发中如果存在多进程共享资源用法时, 会出现资源到不到问题.真实碰到的问题, 记录下来提供同学们参考一, 崩溃信息崩溃日志如下--------- beginning of crash08-17 18:54:00.622 17167 17167 E AndroidRuntime: FATAL EXCEPTION: main08-17 18:54:00.622 17167 17167 E AndroidRuntime: Process: com.mobile.emm.trus原创 2020-09-08 18:18:28 · 1967 阅读 · 0 评论 -
Gradle编译混淆jar包流程说明和解决错误 lint 和 java.io.IOException: Please correct the above warnings first.
一. Gradle编译混销魂的jar包,流程:开发编译环境为Android studio 3.6.2,其他版本可能会有不一样的地方,1. 增加编译task在需要编译jar包的build.gradle文件的根中增加task ://app/build.gradle://apply plugin: 'com.android.application'apply plugin: 'com.android.library'.........................//自定义编译任.原创 2020-06-19 16:53:52 · 1127 阅读 · 0 评论 -
Android开发中content://与file://真实文件路径的转换
问题:最近在开发文件查看器中出现一个问题: 接收到一个uri:content://media/external/images/media/2283 获取到的getPath:/external/images/media/2283, 打开文件是出现异常:java.io.FileNotFoundException: open failed: ENOENT (No such file or ...原创 2020-04-08 16:10:10 · 38295 阅读 · 0 评论 -
Android Studio gradle 编译错误 内存溢出mergeDexDebug OutOfMemoryError
Android Studio 3.X以上用R8编译,速度快,但是吃内存, 编译出现类似以下错误:android studio What went wrong: Execution failed for task 'Module:app:mergeDexDebug'.> java.lang.OutOfMemoryError (no error message)或者其他类似错误...原创 2019-12-02 17:53:04 · 1600 阅读 · 0 评论 -
Android 中public.xml在SDK开发和动态加载的用法
本文介绍:Android 中public.xml在SDK开发和动态加载的用法:解决问题: 1. 在开发SDK或者apk动态加载中,需要应用layout,drawable(图片,点击),dimen, string等等2. apk动态加载(代码和资源隔离,dex动态加载),子apk发通知,调用了主应用的图标(原因:同志是系统发出来的,系统会找主应用的图标ID)原创 2015-10-27 17:22:01 · 2220 阅读 · 0 评论 -
Svn常用操作命令
开发常用的svn命令原创 2015-10-26 10:57:13 · 901 阅读 · 0 评论 -
Java文件读写操作具体代码实现
/** * 一、BufferedReader类 public class BufferedReader extends Reader * 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值足够大。 * 通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader包装所有其 read() * 操作可能开销很高的 Reader(如 FileReader原创 2015-04-27 19:29:16 · 3048 阅读 · 0 评论 -
Android广播接收短信的简单实现
说明: 接受短信广播,由Intent解析出短信内容明文, intent中的短信时已pud形式传出的,即byte[][]二位数组,需要转化出明文SmsMessage.createFromPdu(pdus[i])原创 2015-04-29 16:16:16 · 2164 阅读 · 1 评论 -
java和Android文件下载断点续传和图片下载代码实现,可直接复制简单实现
java和Android文件下载断点续传和图片下载代码实现,可直接复制代码, 实现多种文件下载,原创 2015-04-24 16:23:43 · 1826 阅读 · 0 评论 -
androidActivity相关属性和 启动模式Task taskAffinity 说明
manifest文件中,activity的属性配置说明 description:说明: 声明一个activity(一个Activity子类),它实现了应用程序的可视界面的一部分。所有activity都必须用manifest文件的元素声明。系统将无法看到任何没有被声明的activity,也就无法运行之。 attributes:属性:转载 2012-12-26 13:54:57 · 1322 阅读 · 0 评论 -
Android:Gallery,ImageSwitcher 和GridView用法
Gallery,ImageSwitcher 和GridView用法转载 2015-11-01 15:04:46 · 1035 阅读 · 0 评论 -
数据库视图view简介
视图是一个虚拟表,其内容由查询定义。 同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 对其中所引用的基础表来说,视图的作用类似于筛选,基于数据表(可为多个表)的查询结果来筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。 视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因原创 2016-08-25 10:36:37 · 1409 阅读 · 0 评论 -
本应用数据清除管理器
本应用数据清除管理器 * <p> 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录原创 2017-09-08 10:06:32 · 547 阅读 · 0 评论