- 在android8.0以上的手机上,读取共享文件时,如apk更新的编程中,我们把apk下载后,要安装时,去读取这个apk文件就出现了如下错误: Failed to find configured root that contains ... 12 解决方法: 在file_provider_paths.xml文件中添加root-path 标签 <path&g... 在android8.0以上的手机上,读取共享文件时,如apk更新的编程中,我们把apk下载后,要安装时,去读取这个apk文件就出现了如下错误: Failed to find configured root that contains ... 12 解决方法: 在file_provider_paths.xml文件中添加root-path 标签 <path&g...
- 软件开发离不开团队,当然安卓开发也是这样的。所以一定要做好团队之间的协调和规范。下面是我复制的一篇博客,可以认真学习安卓的命名规范,更好地协调团队之间的合作。 转的博客内容如下: 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时... 软件开发离不开团队,当然安卓开发也是这样的。所以一定要做好团队之间的协调和规范。下面是我复制的一篇博客,可以认真学习安卓的命名规范,更好地协调团队之间的合作。 转的博客内容如下: 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时...
- 枚举的作用就是 定义此元素允许的常量 1.使用@IntDef限制元素的取值范围 package com.wong.ex; import androidx.annotation.IntDef; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; pu... 枚举的作用就是 定义此元素允许的常量 1.使用@IntDef限制元素的取值范围 package com.wong.ex; import androidx.annotation.IntDef; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; pu...
- 本入门教程使用的操作系统为ubuntu18.04 开发环境准备 在AS中新建一个项目,打开项目的File–>Settings–>Android SDK–>SDK Tool,下载安装CMake、LLDB、NDK。 创建一个支持C/C++的Android项目 打开项目的File–>New–>New Object… 创建过程一直Next下去,直到最后一步... 本入门教程使用的操作系统为ubuntu18.04 开发环境准备 在AS中新建一个项目,打开项目的File–>Settings–>Android SDK–>SDK Tool,下载安装CMake、LLDB、NDK。 创建一个支持C/C++的Android项目 打开项目的File–>New–>New Object… 创建过程一直Next下去,直到最后一步...
- 在使用Android Studio开发android应用时,常常会用到Gradle来构建项目。 Gradle是一个通用的构建工具,着重于构建自动化和支持多语言开发,不局限于构建Android应用程序。 Android Studio 和 Gradle都不知道如何构建Android项目,但是有了Android Plugin for Gradle这个插件,就能够驱动整个构建... 在使用Android Studio开发android应用时,常常会用到Gradle来构建项目。 Gradle是一个通用的构建工具,着重于构建自动化和支持多语言开发,不局限于构建Android应用程序。 Android Studio 和 Gradle都不知道如何构建Android项目,但是有了Android Plugin for Gradle这个插件,就能够驱动整个构建...
- 效果图: 1.实现思路 在View中实现onTouchEvent(MotionEvent event)方法,通过此方法获得在屏幕上“写”出的路么的各个点的坐标。根据获得坐标,描绘出路径。因为名字的笔划可能是不连续的,那么那么我们可以将这些路径用List列表保存起来,这就可以借此做逐笔撤回的功能。这些路径我们从按下,再到移动,最后手指离开屏幕,记录为一条路径,并且我... 效果图: 1.实现思路 在View中实现onTouchEvent(MotionEvent event)方法,通过此方法获得在屏幕上“写”出的路么的各个点的坐标。根据获得坐标,描绘出路径。因为名字的笔划可能是不连续的,那么那么我们可以将这些路径用List列表保存起来,这就可以借此做逐笔撤回的功能。这些路径我们从按下,再到移动,最后手指离开屏幕,记录为一条路径,并且我...
- 更多内容请参考《Android Studio如何做混淆》 四大组件及其子类不能进行混淆,因为发包时AndroidManifest.xml(清单文件)中内容不会改动,混淆后便会找不到对应的组件。每个module的 proguard-rules.pro作用于该module,引用不继承混淆规则。用于json转换的实体类的变量名称不能进行混淆: #转换JSON的JavaBe... 更多内容请参考《Android Studio如何做混淆》 四大组件及其子类不能进行混淆,因为发包时AndroidManifest.xml(清单文件)中内容不会改动,混淆后便会找不到对应的组件。每个module的 proguard-rules.pro作用于该module,引用不继承混淆规则。用于json转换的实体类的变量名称不能进行混淆: #转换JSON的JavaBe...
- 前言 在Android系统中,我们通常会通过上下文对象Context获取一些系统级别的服务。而这些服务会在适当的时候以单例的形式注册在系统中,那么我们就可以通过Context的getSystemService(String name)获取。 以下的源码是Android8.0 API 26。 LayoutInflater 今天我们来看一下Android源码中的设计... 前言 在Android系统中,我们通常会通过上下文对象Context获取一些系统级别的服务。而这些服务会在适当的时候以单例的形式注册在系统中,那么我们就可以通过Context的getSystemService(String name)获取。 以下的源码是Android8.0 API 26。 LayoutInflater 今天我们来看一下Android源码中的设计...
- MobSF源码 一、先决条件:安装好的docker 二、使用过程 步骤1:下载镜像 $ docker pull opensecurity/mobile-security-framework-mobsf 1 步骤2:启动容器 $ docker run -it -p 8000:8000 opensecurity/mobile-security-framework-... MobSF源码 一、先决条件:安装好的docker 二、使用过程 步骤1:下载镜像 $ docker pull opensecurity/mobile-security-framework-mobsf 1 步骤2:启动容器 $ docker run -it -p 8000:8000 opensecurity/mobile-security-framework-...
- Android字符串资源 1.文件位置:2.资源引用2.1.在 Java 中:`R.string.string_name`2.2.在 XML 中:`@string/string_name` 3.语法4.字符数组4.1.文件位置:4.2.编译资源的数据类型4.3.资源引用4.4语法: 5.特殊字符的处理6.设置字符串格式7.使用 HTML 标记设置样式7.1带转义... Android字符串资源 1.文件位置:2.资源引用2.1.在 Java 中:`R.string.string_name`2.2.在 XML 中:`@string/string_name` 3.语法4.字符数组4.1.文件位置:4.2.编译资源的数据类型4.3.资源引用4.4语法: 5.特殊字符的处理6.设置字符串格式7.使用 HTML 标记设置样式7.1带转义...
- Android开发中,加载网络服务器的图片是很常用的,当然我们可以自己写服务器接口去实现,不过要做到服务器性能 优越的话,开发起来比较麻烦点,所以本博客要介绍Volley框架进行网络图片加载的demo!Volley框架集成了 AsyncHttpClient和Universal-Image-Loader的优点,开发起来非常的方便了,而且性能也不错! 我们可以去... Android开发中,加载网络服务器的图片是很常用的,当然我们可以自己写服务器接口去实现,不过要做到服务器性能 优越的话,开发起来比较麻烦点,所以本博客要介绍Volley框架进行网络图片加载的demo!Volley框架集成了 AsyncHttpClient和Universal-Image-Loader的优点,开发起来非常的方便了,而且性能也不错! 我们可以去...
- 1.问题描述 在某个页面中使用flutter提供的方式来强制某个页面横屏: SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown ]); 1234 很遗憾!在Android上表现完美,但是在iOS中不能自动横屏,需... 1.问题描述 在某个页面中使用flutter提供的方式来强制某个页面横屏: SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown ]); 1234 很遗憾!在Android上表现完美,但是在iOS中不能自动横屏,需...
- 概述 单独开发每个模块,用集成的方式把他们组合起来,拼出一个app。如通用的模块,自动更新的模块,反馈模块,推送模块都可以单独以模块来开发,最后进行集成。我们可以通过一个壳来包含很多个模块。 好处 可以单独升级模块。耦合度低。同时,也很好地解决了“牵一发而动全身”的问题。方便分工。与其他团队合作时,如外包的团队,可以很好的地将核心代码与外包部分隔离开,不用和他们分... 概述 单独开发每个模块,用集成的方式把他们组合起来,拼出一个app。如通用的模块,自动更新的模块,反馈模块,推送模块都可以单独以模块来开发,最后进行集成。我们可以通过一个壳来包含很多个模块。 好处 可以单独升级模块。耦合度低。同时,也很好地解决了“牵一发而动全身”的问题。方便分工。与其他团队合作时,如外包的团队,可以很好的地将核心代码与外包部分隔离开,不用和他们分...
- 5.0之前支持的隐式启动服务方式 // action名称:com.wong.game.GAME_MyService Intent intent = new Intent("com.wong.game.GAME_MyService"); context.startService(intent); 123 5.0之后不支持上述的方式,可以使用下面的式 // S... 5.0之前支持的隐式启动服务方式 // action名称:com.wong.game.GAME_MyService Intent intent = new Intent("com.wong.game.GAME_MyService"); context.startService(intent); 123 5.0之后不支持上述的方式,可以使用下面的式 // S...
- Android应用目前基本都用Java语言来编写。操作系统在执行代码时,总要知道从哪里开始执行。因此编程语言都约定main()函数作为应用程序的入口。自然Java也不例外。Android应用的入口 main()函数在ActivityThread这个类中。 平时我们写Android应用时,更关注Activity的生命周期,那么这一系列的生命周期方法是什么时候执行的都是在... Android应用目前基本都用Java语言来编写。操作系统在执行代码时,总要知道从哪里开始执行。因此编程语言都约定main()函数作为应用程序的入口。自然Java也不例外。Android应用的入口 main()函数在ActivityThread这个类中。 平时我们写Android应用时,更关注Activity的生命周期,那么这一系列的生命周期方法是什么时候执行的都是在...
上滑加载中
推荐直播
-
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day2)
2025/03/30 周日 09:00-12:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
从AI基础到昇腾:大模型初探、DeepSeek解析与昇腾入门
2025/04/02 周三 16:00-17:30
不易 / 华为云学堂技术讲师
昇腾是华为研发的AI芯片,其具有哪些能力?我们如何基于其进行开发?本期直播将从AI以及大模型基础知识开始,介绍人工智能核心概念、昇腾AI基础软硬件平台以及昇腾专区,旨在为零基础或入门级学习者搭建从AI基础知识到昇腾技术的完整学习路径。
回顾中
热门标签