5 晓涵涵

尚未进行身份认证

我要认证

宁静方能致远

等级
TA的排名 4w+

DevEco Studio和Android Studio的简单对比

如大会上所描述的,安卓程序猿真的可以快速的转接到鸿蒙的开发中,通过类比Android Studio?(以下简称AS)和DevEco Studio (以下简称DS),结合官方的开发文档,可以很容易上手鸿蒙的应用层开发,下面我们通过对比的方式,编写第一个运行程序。1、AS和DS的整体对比通过对比可以发现,其整体结构基本一样,包括build、libs、java文件基本一致,主要区别如下:java文件目录:里面包含的一些控件和编写语言有所区别,AS中使用actiivty、serivice、java或kotl

2020-09-16 08:20:33

DevEco studio 一直加载gradle

在使用DevEco studio 时一直处于提示gradle的问题,该现象和之前的Androoid Studio类似一直去网络中请求下载指定的gradle的版本,此时类比Android Studio先将gradle版本下载下来,然后放置在指定的目录下,重新同步一下即可,操作流程如下:1、下载指定的gadle版本可以到 官网下载或者借助网友提供的下载好的版本,直接下载使用。2、打开DevEco studio自动加载路径在File–Settings–Gradle 中配置 Grale user home

2020-09-14 07:10:57

Android adb 命令行 卸载系统预安装的应用(无需root)

昨天刚买了个华为手机,性价比还可以,就是里面预安装 了好多其他应用,像“抖音”,“淘宝”和“支付宝”等应用,可以直接自己卸载,但是有些系统预安装应用就无法通过桌面卸载,例如“华为音乐”,“华为视频”和“钱包”等,此时可通过直接执行adb命令的方式卸载,无须root。1、说明主要通过以下命令行:adb shell pm uninstall [-k] [--user USER_ID] 包名参数说明:-k :卸载应用但保留数据与缓存,如不加 -k 则应用卸载,数据与缓存删除(应用可通过恢复出厂设置

2020-08-30 15:59:47

安卓音视频基础:AudioRecord和AudioTrack的简单使用

在之前的文章安卓实现录音/播放/暂停/继续的功能中介绍了通过MediaRecorder和MediaPlayer实现简单的录音和播放功能,但相比于安卓二次封装后的API,AudioRecord和AudioTrack更接近底层,可通过获取的PCM数据,进行二次的算法处理,实现更加接近需求的声音。1. AudioRecordAndioRecord类的主要功能是让各种JAVA应用能够管理音频资源,以便它们通过此类能够录制声音相关的硬件所收集的声音。此功能的实现就是通过”pulling”(读取)AudioRec

2020-06-27 15:01:04

Okhttp源码解析(一)

Okhttp(官网、github)作为安卓主流的网络加载框架,其基本使用相信大家已经很熟悉,通过简单的依赖和设置参数即可完成网络的请求,且包含丰富的API方便调用,例如简单的图片加载实例。本文旨在学习其源码相关的知识,了解网络加载背后源码的执行流程,方便更好的使用该框架和解决问题。1、网络加载的执行流程 OkHttpClient client = new OkHttpClient .Builder() .build();

2020-05-31 23:21:36

算法中时间复杂度和空间复杂度简介

作为程序员,大家应该都听过这样一个公式:程序设计 = 算法 + 数据结构,我们所编写的程序都可以使用这个公式来概括,其中算法主要是针对世间和空间两个维度进行考核。时间维度:执行当前算法所消耗的时间,即,时间复杂度;空间维度:执行当前算法所消耗的空间,即,空间复杂度。1、时间复杂度1.1 计算表达式要计算算法的时间消耗,可以通过加日志打印,获取该程序执行算消耗的时间,但在实际的使用中,...

2020-04-19 13:32:07

Android的IntentService的源码分析

1、简述由于Service作为四大组件之一,其运行在主线程中,无法执行耗时操作,通过如果需要执行耗时操作需要创建线程来执行异步任务,但其实不用自己创建线程,安卓原生中提供了一种类:IntentService。其是一种继承自Service的异步请求类。2、简单使用public class TestIntentService extends IntentService { privat...

2020-02-03 22:50:22

Android的HandlerThread的源码分析

1、简介HandlerThread顾名思义,就是Thread与Handler相结合,其本质还是一个线程,只是在该线程中添加了该线程相关的Handler,实现了轻量级的异步类,具有以下特点:普通线程类:与普通线程的使用类似,需要通过新建线程对象并调用start()开启线程;内部嵌套了Handler:包含与该线程相绑定的Handler,方便线程之间的数据交互;串行运行:其内部通过Looper...

2020-02-03 20:29:45

Android的Handler常见的面试问题

本文是对常见面试问题的分析,关于Handler的运行机制详细分析见:Android Handler的源码分析1、Handler是怎么实现切换线程的?2、handler.sendMessage()与handler.post()的区别?3、MessageQueue是怎么增删消息的?4、一个线程可以有几个Handler?几个Looper?几个MessageQueue?5、A Handler发送...

2020-02-03 15:46:53

Android Handler的源码分析

1、简述由于安卓中为了确保界面的更新同步,限制了只有UI(主)线程可以更新界面,但是UI线程不能执行耗时操作,相关的文件读取、数据加载和网络请求等操作,需要放置在子线程进行处理,但处理完成后怎样将子线程的处理结果及时的发送至主线程呢?此时就需要引入Handler的运行机制,通过Hnadler的创建、发送和处理方式,实现跨线程的数据通信。其实Handelr主要用于线程间通信的,但在安卓开发中一...

2020-02-02 17:32:14

Android 的 LocalBroadcastManager 源码分析

1、简述在安卓中广播通常分为普通广播、有序广播、粘性广播和本地广播,其中本地广播相比而言具有以下特点安全:本地广播只能在其APP中发送和接收,其他应用无法获取和接收;高效:本地广播发送和接收效率较高;简单:无静态注册方式,使用其封装后的注册、发送和解除方法。2、简单使用获取对象:通过LocalBroadcastManager获取LocalBroadcast对象;mLocalB...

2020-02-01 19:34:08

android中的scheme协议

1、什么是 URL Scheme?Android中的是Scheme是一种页面的跳转协议,主要用于以下场景:服务器下发:服务端通过自定义的字段下发至APP,APP通过解析该字段,跳转至相应的界面;H5跳转:通过H5的操作界面,跳转至安卓的原生界面中;APP的界面跳转:通过该协议跳转至APP内或其他APP的界面中。2、怎样使用URL Scheme1、AndroidMaintest.xm...

2020-01-31 21:59:12

微信小程序开发工具 常用快捷键

格式调整Ctrl+S:保存文件Ctrl+C :注释代码Ctrl+[, Ctrl+]:代码行缩进Ctrl+Shift+[, Ctrl+Shift+]:折叠打开代码块Ctrl+C Ctrl+V:复制粘贴,如果没有选中任何文字则复制粘贴一行Shift+Alt+F:代码格式化Alt+Up,Alt+Down:上下移动一行Shift+Alt+Up,Shift+A...

2020-01-04 22:56:13

Dalvik和ART

在-----讲解了Java的虚拟机JVM相关的知识,但JVM主要是用于pc端的应用,针对Android设备中提出了Dalvik和ART两种虚拟机,但关于这两种虚拟机涉及的知识点十分广,本文针对学习《Android晋级之光》和平时的工作总结,作简单分享。一、Dalvik 虚拟机Dalvik 没有遵循JVM规范来实现,因此Dalvik 与JVM存在以下不同点:基于架构不同:JVM基于栈去读写数...

2019-10-19 20:52:09

理解Java虚拟机

声明:学习刘望舒《Android晋级解密》第10章Java虚拟机总结一、Java虚拟机的执行流程Java虚拟机的运行流程包括两部分,编译时和运行时。其中编译时是将.java文件编译为.class文件;运行时是将.class文件交给Java虚拟机,进行程序的执行。由于最终Java虚拟机执行的是.class文件,因此在编译时是通过何种语言生成的.class文件,Java虚拟机并不关心,因此任何语言...

2019-10-19 17:59:45

Android中UID、GID和PID的讲解

一、概述在实际的开发中经常会碰到各种ID,这是由于在计算机的发展过程中,需要对程序执行的每一步做标记,通过这些标记的关联便于系统的统一管理。像PID、UID、GID、和EUID等,其实对于这些ID不需要刻意记忆,只需要了解其名称含义,就明白其所对应的意义。二、Linux中的概念解析2.1 UID在Linux中用户的概念分为:普通用户、根用户和系统用户。普通用户:表示平时使用的用户概念,在...

2019-10-07 10:14:11

Android 8.0系统启动流程_Launcher(四)

本系列主要介绍Android8.0系统启动过程中涉及到的init、Zygote、SystemServer和Launcher。在之前的三篇文章中,讲解了如下的过程:初始化化:电源上电,加载BootLoader程序; 启动init.cpp,解析init.rc配置文件;启动Zygote进程:启动虚拟机和注册JNI方法;注册Socket服务端,预加载资源;执行runSelectLoop()方法等待...

2019-09-28 17:15:02

Android 8.0系统启动流程_SystemServer(三)

本系列主要介绍Android8.0系统启动过程中涉及到的init、Zygote、SystemServer和Launcher。

2019-09-23 06:50:35

Android 8.0系统启动流程_Zygote(二)

本系列主要介绍Android系统启动过程中涉及到的init、Zygote、SystemServer和Launcher。文本分析的源码时基于Android8.0源码。Zygote(孵化器),系统中DVM、ART、应用程序进程和SystemServer进程都是由Zygote创建,其中SystemServer是应用层开发经常碰到的,因为应用层APP的进程是通过SystemServer进程创建出来的。...

2019-09-03 23:20:56

Android 8.0系统启动流程_init(一)

本文主要介绍Android系统启动过程中涉及到的init、Zygote、SystemServer和Launcher。文本分析的源码时基于Android8.0源码。1.init1.1init启动前准备init进程是Android系统的第一个进程,其进程号为1,该进程启动后,主要处理一些重要的初始化工作,比如创建Zygote和各种属性服务。在电源按键,按下后,经历如下几个步骤后,便开始引入in...

2019-09-01 18:30:38

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。