android
半夏茶白
别着急,在变好
展开
-
Android Handler,HandlerThread,Looper的使用实例
public class Demo{ private static final String TAG = "Demo"; private HandlerThread mHandlerThread = null; private Handler mHandler= null; public void init() { // start CallBackThread mHandlerThread = new HandlerThread("tcpHanler"原创 2022-03-10 21:00:51 · 1560 阅读 · 0 评论 -
AndroidStudio如何将proto文件转为java代码
将proto文件放置在$projectDir/src/main/proto目录下在工程的build.gradle中配置buildscript { repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.0.2" // 配置如下 classpath 'com.原创 2022-03-10 20:51:55 · 2655 阅读 · 0 评论 -
Android Http client如何跳过证书校验
public class HttpClientDemo { public static final String TAG = "HttpClientDemo"; // 用于跳过证书校验 private TrustManager[] mTrustManagers; public HttpClientDemo() { mTrustManagers = new TrustManager[]{ new X509TrustManager() {原创 2022-03-10 20:43:46 · 2550 阅读 · 0 评论 -
Android http client实例
package com.iauto.scenarioenginelite;import android.util.Log;import org.json.JSONArray;import org.json.JSONObject;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.In原创 2022-03-10 20:41:30 · 912 阅读 · 0 评论 -
Android mqtt客户端实例
build.gredle中配置dependencies{api 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'}代码实例package com.example.mqtt;import android.util.Log;import org.eclipse.paho.client.mqttv3.MqttCallbackExtended;import org.eclipse.paho.client.mqttv3.Mqtt.原创 2022-03-10 20:36:20 · 1234 阅读 · 0 评论 -
Android如何设置Activity不显示界面
在AndroidManifest.xml中配置<application android:theme="@android:style/Theme.NoDisplay"/>在MainAcivity中onCreate末尾调用finish(),或者在onResume中调用也可@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc.原创 2022-03-10 20:27:22 · 3433 阅读 · 0 评论 -
Android如何启动service
启动service的两种方式1. 通过StartService启动Service通过startService启动后,service会一直无限期运行下去,当外部调用了stopService()或stopSelf()方法时,该Service才会停止运行并销毁当系统资源不足时, 会回收一些不重要的service,service被系统回收也会停止运行并被销毁生命周期onCreate()1.如果service没被创建过,调用startService()后会执行onCreate()回调;2.如果原创 2022-03-10 20:08:48 · 16981 阅读 · 1 评论 -
Android启动流程
init启动流程当按下Power键,引导芯片加载bootloader并将系统OS拉起来,然后启动Linux内核,当内核完成系统设置,会寻找init文件,进而启动root进程或者Linux用户空间的都一个进程,也就是启动init进程init进程是Android的第一个启动进程,进程号为1init进程主要工作包括以下几点:创建并挂载设备解析两个配置文件,init.rc 文件, 另一个是与硬件平台相关的配置文件init.bravo.rc启动zygote初始化并启动属性服务(在adb命令中可以使用g原创 2022-02-24 14:12:47 · 986 阅读 · 0 评论 -
ubuntu下载android11源码
1. 下载repo确保你的主目录中有一个 bin/ 目录,并且它包含在你的路径中mkdir ~/binPATH=~/bin:$PATH下载 Repo 启动器,赋予可执行权限:curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo2. 下载源码mkdir android11cd android11repo init -u https://and原创 2022-02-17 16:59:47 · 1808 阅读 · 0 评论 -
深入理解JNI
概述JNI是一种本地编程接口。它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C语言、C++、汇编,写的应用和库之间的交互操作java层使用1. 加载jni库static { try { System.loadLibrary(“demo_jni”); } catch (SecurityException ex) { Log.e(TAG, “System.loadLibrary SecurityException “ + ex); } catch (NullPointer原创 2022-02-15 20:27:08 · 1104 阅读 · 0 评论 -
Binder机制
Binder是Android系统提供的一种IPC机制,用于进程间通信原理IPC 每个Android的进程,只能运行在自己进程所拥有的虚拟地址空间。对应一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间,当然内核空间的大小是可以通过参数配置调整的。 对于用户空间,不同进程之间彼此是不能共享的,而内核空间却是可共享的。 Client进程向Server进程通信,是利用进程间可共享的内核内存空间来完成底层通信工作 Client端与Server端进程往往采用ioctl等方法跟内核空转载 2021-07-30 14:33:06 · 678 阅读 · 0 评论 -
Android.bp使用、与Android.mk的区别、对应关系、转换
Android.bp与Android.mk的区别通过Kati将Android.mk转换成ninja格式的文件,通过Blueprint+ Soong将Android.bp转换成ninja格式的文件,通过androidmk将将Android.mk转换成Android.bp,但针对没有分支、循环等流程控制的Android.mk才有效ninja是一个编译框架,会根据相应的ninja格式的配置文件进行编译,但是ninja文件一般不会手动修改,而是通过将 Android.bp文件转换成ninja格文件来编译转载 2021-05-10 21:24:03 · 10783 阅读 · 0 评论 -
Android.mk的使用以及常用模板
Android.mk使用// 一个Android.mk file首先必须定义好LOCAL_PATH变量。它用于在开发树中查找源文件。在这个例子中,宏函数‘my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录)LOCAL_PATH := $(call my-dir)// Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_VARS)开始,以include $(BUILD_XXX)结束// CLEAR_VARS指的原创 2021-05-07 19:36:06 · 526 阅读 · 1 评论