Java
文章平均质量分 65
Amosstan
一枚快乐的CODER~~
展开
-
Android4.4添加系统服务(aidl接口服务)
一、 准备编译好的Android4.4源码用于添加系统服务,用于获取CPU的Core数量。AndroidStudio工具用于编写apk调用系统接口二、 添加系统服务添加aidl接口frameworks/base/core/java/android/app/ICpuInfoManager.aidlpackage android.app;interface ICpuInfoManager{ int getCpuCore();}添加系统服务,实现aidl文件的接口f原创 2022-05-18 15:34:21 · 114710 阅读 · 0 评论 -
Java关键字 -- synchronized
一、介绍synchronized是Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。当两个并发线程访问同一个对象object中的这个加锁同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。然而,当一个线程访问object的一个加锁代码块时,另一个线程仍可以访问该object中的非加锁代码块。二、用法synchronized修饰的对象有以下几种:修饰代码块原创 2021-09-07 16:55:04 · 170963 阅读 · 3 评论 -
Java -- 序列化(Serializable)
一、前言什么是序列化(a) 序列化是Java提供的一种机制。通过该机制,一个对象可以被表示为一个字节序列,并存储到磁盘文件中。(b) 将序列化的对象写入文件后,通过反序列化可以将这个对象从文件中读取出来。为什么要序列化对象、文件、数据有许多不同的格式,很难统一传输与保存。序列化后就可以将上述数据转换为字节流,统一起来,这样方便传输。使用时,再将其反序列化,这样对象是对象,文件是文件。二、序列化过程被序列化的类需要继承Serializable接口,并且设置serialVersionUID原创 2021-04-02 18:35:29 · 210252 阅读 · 0 评论 -
Android -- JNI开发(动态注册)
一、前言注册JNI函数有两种方式:静态注册这种方法比较常见,用的是javah -jni xxxx命令生成一组签名函数,并去实现这些函数。静态注册方式的弊端:(a)需要编译所有声明了native函数的Java类,每个所生成的class文件都得用javah命令生成一个头文件。(b)javah生成的JNI层函数名特别长,书写起来很不方便。(c)初次调用native函数时要根据函数名字搜索对应的JNI层函数来建立关联关系,这样会影响运行效率。静态注册在前面已经提到过,详情请见:Android St原创 2021-04-01 19:37:11 · 210980 阅读 · 0 评论 -
Android ListView -- 带图标和文字的Item
一、前言在某些场景下,单一文字的ListView Item已不适合当前需求,因此需要我们自定义Item布局来满足需求。下面我们来实现一个带图标和文字的Item。二、代码展示定义包含ListView的布局文件activity_main.xml,Activity在onCreate()时加载。<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:a原创 2021-03-26 21:12:14 · 221102 阅读 · 1 评论 -
Android MVP架构
一、架构概述对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的。而对于Android应用的开发中本身可视为一种MVC架构。通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色。不过更多情况下在实际应用开发中Activity不能够完全充当Controller,而是Controller和View的合体。于是Activity既要负责视图的显示,又要负责对业务逻辑的处理原创 2021-03-24 09:32:15 · 220323 阅读 · 1 评论 -
Java回调方法(CallBack)
一、前言在进行应用开发时,不同模块之间存在着相互调用的关系。调用的方式分为以下几种:同步调用fun(a)调用fun(b),fun(a)等待fun(b)执行完后再进行下一步。同步调用会引起代码的阻塞。异步调用fun(a)调用fun(b), fun(a)不等待fun(b)执行完便进行下一步。常见的有Thread、Task等。回调回调的机制是:a) 类A的a()方法调用类B的b()方法b) 类B的b()方法执行完毕主动调用类A的callback()方法二、例子简介实现一个原创 2021-03-18 09:59:50 · 234185 阅读 · 3 评论 -
Android 判断IP地址及端口是否正确
一、前言在进行网络编程时,端口或者IP的不正确会导致应用挂掉,通过以下方法可以对端口或者IP进行判断是否合法。二、解决思路1.端口判断端口的有效范围在 0 ~ 65535之间,写一个判断方法即可。2. IP判断这儿的IP指IPv4地址。a) IP地址长度判断b) 切割字符串,是否能够被分为四段c) 每段是否为数字d) 每个数字是否在0 ~ 255之间三、参考代码 private boolean isNetPort(int port) { boolean flag原创 2021-03-17 18:24:10 · 220653 阅读 · 0 评论 -
获取Android 设备的WIFI IPv4地址
一、前言有时候需要获取Android设备的IPv4地址,可以通过下面列出的一种方法获取。二、获取方法 // 获取IPv4地址 private String getDeviceIPv4() { //获取WifiManager WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); // 若WI原创 2021-03-17 12:52:10 · 219637 阅读 · 0 评论 -
Android 通过Java方法获取所有IPv6地址
IPv6技术正在蓬勃发展。 最近做项目的时候,客户要求Setting中将所有的IPv6地址都能够显示出来,目前通过Android标准接口只能获取一个IPv6地址,但是安卓设备可能有多个IPv6地址。为此我们首先想到利用ifconfig去获取,但是用java代码执行Runtime.getRuntime().exec(“ifconfig eth0”)时,发现没有权限。网上有几种方法写到:先执行Run...原创 2018-08-13 11:24:38 · 220132 阅读 · 0 评论