android相对路径
㈠ android 显示本地html,js和css文件应该放在什么目录上
你好。
根据你的描述,
android 显示本地html,js和css文件应该放在什么位置,
关键是你的html引用的目录地址是什么,放在同一个文件夹下最好
㈡ 如何强制Android Studio中使用相对路径
工具:Android Studio方法打开Android Studio,选择Configure选择Project Defaults选择Project Structure点击下图框起来,右边的浏览键选择sdk即可
㈢ c/c++语言include<android/log.h>,"android/"是什么意思,不写这个限定可以吗
编译器只会到指定的文件夹中去查找include 的头文件
比如 对于这个, 系统定义了ndk下 指定的include文件夹为查找头文件的路径
而log.h 在include下的android文件夹里面
如果单独include <log.h>那么系统会找不到这个文件
只有用相对路径 android/log.h这样才可以。
㈣ 如何单独编译Android源码中的模块
第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system.img的命令。在继续学习Android源代码之前,就让我们先来看看这个命令吧。
一. 首先在Android源代码目录下的build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用的工具: USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh 注意,这是一个source命令,执行之后,就会有一些额外的命令可以使用: - croot: Changes directory to the top of the tree. - m: Makes from the top of the tree. - mm: Builds all of the moles in the current directory. - mmm: Builds all of the moles in the supplied directories. - cgrep: Greps on all local C/C++ files. - jgrep: Greps on all local java files. - resgrep: Greps on all local res/*.xml files. - godir: Go to the directory containing a file. 这些命令的具体用法,可以在命令的后面加-help来查看,这里我们只关注mmm命令,也就是可以用它来编译指定目录的所有模块,通常这个目录只包含一个模块。
二. 使用mmm命令来编译指定的模块,例如Email应用程序: USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/ 编译完成之后,就可以在out/target/proct/generic/system/app目录下看到Email.apk文件了。Android系统自带的App都放在这具目录下。另外,Android系统的一些可执行文件,例如C编译的可执行文件,放在out/target/proct/generic/system/bin目录下,动态链接库文件放在out/target/proct/generic/system/lib目录下,out/target/proct/generic/system/lib/hw目录存放的是硬件抽象层(HAL)接口文件。
三. 编译好模块后,还要重新打包一下system.img文件,这样我们把system.img运行在模拟器上时,就可以看到我们的程序了。 USER-NAME@MACHINE-NAME:~/Android$ make snod
四. 参照Ubuntu上下载、编译和安装Android最新源代码一文介绍的方法运行模拟器: USER-NAME@MACHINE-NAME:~/Android$ emulator 这样一切就搞定了。
㈤ android模拟器中命令参数主要有哪些
1、Help
-help打印模拟器参数列表。
-help-all打印所有启动参数明细。
-help-<option>打印指定启动参数的信息。
-help-debug-tags打印所有被-debug <tags>打开的列表。
-help-disk-images打印正在使用的磁盘镜像信息。
-help-environment打印模拟器环境变量信息。
-help-keys打印当前的键盘映射。
-help-keyset-file打印一个自定义的键盘映射文件的定义。
2、Disk Images
-cache <filepath>使用<filepath> 指定网络缓存分区镜像。自定义,您可以指定一个当前工作目录的相对路径。如果没有指定缓存文件,模拟器会指定一个零时文件作为缓存文件。
-data <filepath>使用<filepath>作为用户数据磁盘镜像。自定义,您可以指定一个当前工作目录的相对路径。如果-data没有被使用,模拟器会在<datadir>指定的目录下寻找名叫"userdata-qemu.img"的镜像文件。默认情况下,模拟器会寻找~/.android (on Linux/Mac)或者C:/Documents and Settings/<user>/Local Settings/Application Data/Android (on Windows)。如果您使用了-data <filepath>,但是文件并不存在,模拟器将创建同名文件。
-image <filepath>使用<filepath>作为系统镜像。自定义,您可以指定一个当前工作目录的相对路径。默认为<system>/system.img。
-initdata <filepath>重写用户数据镜像时,(使用 -wipe-data),复制此文件内容到新用户数据文件镜像中。默认方式下,模拟器拷贝<system>/userdata.img。自定义,您可以指定一个当前工作目录的相对路径。
-kernel <filepath>使用<filepath>作为模拟器内核。自定义,您可以指定一个当前工作目录的相对路径。
-nocache启动模拟器时无缓存分区。
-ramdisk <filepath>使用<filepath>作为虚拟内存镜像。默认<system>/ramdisk.img. 自定义,您可以指定一个当前工作目录的相对路径。
-sdcard <filepath>使用<file>作为SD卡镜像。默认为<system>/sdcard.img. 自定义,您可以指定一个当前工作目录的相对路径。
-system <dirpath>在指定的<dir>下搜索系统、虚拟内存和用户数据镜像文件。<dir>为当前路径的相对目录。
-wipe-data重至用户数据镜像文件。(that is, the file specified by -datadir and -data, or the default file)。 模拟器删除所有用户数据,然后复制右-inidata参数指定的数据到镜像文件,在启动之前。
3、Debug
-debug <tags>开启/关闭指定tag的调试信息。
<tags>是一个被空格/逗号/纵列所分割的调试组建名称列表。
-debug-<tag>开启/关闭指定tag的调试信息。使用-help-debug-tags获得您可以指定为<tag>的调试组件列表。
-debug-no-<tag>关闭指定tag的调试信息。
-logcat <logtags>打开指定tag的日志输出。如果环境变量ANDROID_LOG_TAGS被指定且不为空,她的值将成为日志输出的默认值。
-shell创建一个拥有root权限的命令行窗口。即使模拟器的UI界面无法使用了,您依然可以使用命令行窗口。按Ctr-c键中断模拟器运行。
-shell-serial <device>打开具有root权限的脚本窗口。<device>必须是一个QEMU类型的设备。
-show-kernel <name>显示内核信息。
-trace <name>Enable code profiling (press F9 to start), written to a specified file.
-verbose开启冗长输出。Equivalent to -debug-init. 您可以定义ANDROID_VERBOSE环境变量作为冗长输出参数。定义你想用到的参数,用逗号分割。这样可以省略像-debug-<tags>这样的参数。
4、Media
-audio <backend>使用指定的音频后端。
-audio-in <backend>使用指定的音频输入后端。
-audio-out <backend>使用指定的音频输出后端。
-noaudio在当前虚拟机实例中关闭音频支持。
-radio <device>重新定向收音机接口到本地的字节设备。
-useaudio打开模拟器实例的音频支持。默认状态为打开。
5、Network
-dns-server <servers>使用指定的DNS服务器。<servers>必须是以逗号分割,多于4个的服务器名或IP地址。
-http-proxy <proxy>配置TCP连接使用HTTP/HTTPS代理。
<proxy>必须符合以下格式:http://<server>:<port>
http://<username>:<password>@<server>:<port> 前缀http://可以被忽略。如果-http-proxy <proxy>未被指定,模拟器将寻找http_proxy环境变量,并且自动寻找所有符号格式要求的<proxy> 值。
-netdelay <delay>设置网络延迟默认值为none。
-netfast快捷的 -netspeed full -netdelay none
-netspeed <speed>指定模拟器网络速度为<speed>,默认值为full。
-port <port>指定模拟器网络端口为<port>,控制台端口号必须介于5554和5584之间,并且<port>+1必须留作ADB使用。
-report-console <socket>启动前向第三方同志此模拟器实例的网络端口。<socket> 必须是以下几种格式:
tcp:<port>[,server][,max=<seconds>]
unix:<port>[,server][,max=<seconds>]
6、System
-cpu-delay <delay>降低模拟器CPU的速度到<delay>。<delay>支持0到100的整数。注意<delay>与具体的时钟或其他的绝对频率无关。它只表现为一种抽象的,相对于当前模拟器运行状况的速度调节。
-gps <device>重定向NMEA GPS到字节设备。
使用此参数通知模拟器模拟一个NMEA-compatible GPS,连接到一个扩展的设备或socket端口。<device>格式必须符合QEMU-specific所指定的设备格式。
-nojni在Dalvik运行时关闭JNI检查
-qemu传递参数到qemu。
-qemu -h关闭qemu帮助。
-radio <device>重定向录音机模块到制定的字符设备。<device>格式必须符合QEMU规定的序列设备。
-timezone <timezone>设定模拟器时区为<timezone>,替换为系统时区。<timezone>必须按照时区格式指定。比如:"America/Los_Angeles","Europe/Paris"
-version显示模拟器版本号。
7、UI
-dpi-device <dpi>修改模拟器的分辨率适配物理设备。默认值为165。参见-scale.
-no-boot-anim关闭模拟器启动时的动画。禁用启动动画可以加快启动速度。
-no-window关闭模拟器的绘制窗口。
-scale <scale>调整模拟器窗口。<scale> 是介于0.1到3的数字,它是调整屏幕的比例因子。您也可以指定一个DPI值,在添加dpi前缀的情况下。Auto参数告诉模拟器选择自己最合适的尺寸。
-raw-keys关闭Unicode键盘reverse-mapping.
-noskin不使用任何模拟器皮肤。
-keyset <file>用指定的键盘设置文件代替默认。指定宿主键盘和模拟器之间的键盘映射文件。
-onion <image>用图片覆盖屏幕。不支持JPEG,只支持PNG。
-onion-alpha <percent>指定onion皮肤透明值(百分比) 默认为50.
-onion-rotation <position>指定onion皮肤旋转。<position> 必须是 0, 1, 2, 3中的一个。
-skin <skinID>启动模拟器,搭配指定皮肤。
-skindir <dir>在指定目录<dir>下搜索皮肤
以上就是android模拟器中的一些常用参数及其作用,可能还有整理得不够全面得地方,欢迎大家补充分享。
㈥ 如何单独编译Android源代码中的模块
1.make 模块名称
需要查看Android.mk文件的LOCAL_PACKAGE_NAME变量。
2.mmm命令
用于在源码根目录编译指定模块,参数为模块的相对路径。只能在第一次编译后使用。比如要编译Phone部分源码,需要在终端中执行以下命令:
$mmm packages/apps/phone
3.mm命令
用于在模块根目录编译这个模块。只能在第一次编译后使用。例如要编译Phone部分源码,需要在终端中执行以下命令:
$cd packages/apps/phone
$mm
注:mmm和mm命令必须在执行“.build/envsetup.sh”之后才能使用,并且只编译发生变化的文件。如果要编译模块的所有文件,需要-B选项,例如mm -B。
㈦ android 上传到服务器的mp4文件网页上不能播放但是能用地址下载播放
一、注意编码方式。同为MP4格式的视频,它的编码方式有多种:divx、xvid、h264等等。可以分别试一下,通常网页支持的是xvid。二是注意视频分辨率。不能高了,否则不能播放。通常用320*240试试。三是注意视频的码率(比特率),不能高了,否则不能播放。通常用500K左右就可以了。以上三个参数,在转换成MP4时,可以设置。建议用格式工厂来转换。在转换时,点开输出配置,就可以设置具体的参数了。
㈧ android怎样拿到file的路径
Environment 常用方法:
* 方法:getDataDirectory()
解释:返回 File ,获取 Android
数据目录。
* 方法:getDownloadCacheDirectory()
解释:返回 File ,获取 Android
下载/缓存内容目录。
* 方法:getExternalStorageDirectory()
解释:返回 File ,获取外部存储目录即
SDCard
* 方法:(String type)
解释:返回 File
,取一个高端的公用的外部存储器目录来摆放某些类型的文件
* 方法:getExternalStorageState()
解释:返回 File
,获取外部存储设备的当前状态
* 方法:getRootDirectory()
解释:返回 File ,获取 Android 的根目录
file的getPath getAbsolutePath和getCanonicalPath的不同
File的这三个方法在api中都有说明,仅以程序为例说明。
package test;
import
java.io.File;
import java.io.IOException;
public class TestFilePath
{
public static void main(String[] args) {
// TODO Auto-generated
methodstub
System.out.println(System.getProperty("user.dir"));
try
{
System.out.println("-----默认相对路径:取得路径不同------");
File file1 =new
File("..\\src\\test1.txt");
System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getCanonicalPath());
System.out.println("-----默认相对路径:取得路径不同------");
File
file =new
File(".\\test1.txt");
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
System.out.println("-----默认绝对路径:取得路径相同------");
File
file2 =new
File("D:\\workspace\\test\\test1.txt");
System.out.println(file2.getPath());
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getCanonicalPath());
}
catch (IOException e) {
// TODOAuto-generated catch
block
e.printStackTrace();
}
}
}
程序执行结果如下:
F:\eclipseworkspace\testejb
-----默认相对路径:取得路径不同------
..\src\test1.txt
F:\eclipseworkspace\testejb\..\src\test1.txt
F:\eclipseworkspace\src\test1.txt
-----默认相对路径:取得路径不同------
.\test1.txt
F:\eclipseworkspace\testejb\.\test1.txt
F:\eclipseworkspace\testejb\test1.txt
-----默认绝对路径:取得路径相同------
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
结论:
当输入为绝对路径时,返回的都是绝对路径。
当输入为相对路径时:
getPath()返回的是File构造方法里的路径,是什么就是什么,不增不减
getAbsolutePath()返回的其实是user.dir+getPath()的内容,从上面F:\eclipseworkspace\testejb、F:\eclipseworkspace\testejb\..\src\test1.txt、F:\eclipseworkspace\testejb\.\test1.txt可以得出。
getCanonicalPath()返回的就是标准的将符号完全解析的路径
public String
getAbsolutePath()返回抽象路径名的绝对路径名字符串。
如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath()
方法一样。如果此抽象路径名是空的抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir
指定。否则,使用与系统有关的方式分析此路径名。在 UNIX 系统上,通过根据当前用户目录分析某一相对路径名,可使该路径名成为绝对路径名。在 Microsoft
Windows
系统上,通过由路径名指定的当前驱动器目录(如果有)来分析某一相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录来分析它。
返回:
绝对路径名字符串,它与此抽象路径名表示相同的文件或目录的
抛出:
SecurityException
- 如果无法访问所需的系统属性值。
另请参见:
isAbsolute()
public String getCanonicalPath()
throws
IOException返回抽象路径名的规范路径名字符串。
规范路径名是绝对路径名,并且是惟一的。规范路径名的准确定义与系统有关。如有必要,此方法首先将路径名转换成绝对路径名,这与调用
getAbsolutePath() 方法的效果一样,然后用与系统相关的方式将它映射到其惟一路径名。这通常涉及到从路径名中移除多余的名称(比如 "." 和
"..")、分析符号连接(对于 UNIX 平台),以及将驱动器名转换成标准大小写形式(对于 Microsoft Windows
平台)。
表示现有文件或目录的每个路径名都有一个惟一的规范形式。表示非存在文件或目录的每个路径名也有一个惟一的规范形式。非存在文件或目录路径名的规范形式可能不同于创建文件或目录之后同一路径名的规范形式。同样,现有文件或目录路径名的规范形式可能不同于删除文件或目录之后同一路径名的规范形式。
返回:
表示与此抽象路径名相同的文件或目录的规范路径名字符串
抛出:
IOException
- 如果发生 I/O 错误(可能是因为构造规范路径名需要进行文件系统查询)
SecurityException -
如果无法访问所需的系统属性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor)
方法拒绝对该文件进行读取访问
从以下版本开始:
JDK1.1
㈨ Android Q中BoardConfig.mk为什么PRODUCT_COPY_FILES不生效
PRODUCT_COPY_FILES本质是和定义产品的AndroidProcts.mk(get-all-proct-makefiles来获取系统中所有AndroidProcts.mk 文件路径)联系在一起,这个文件内部会定义所属的产品的PRODUCT_MAKEFILES,该变量可定义多个xxx.mk产品相关定义文件,在编译初始化环境时会将其include进来。如同PRODUCT_NAME/PRODUCT_DEVICE一样,PRODUCT_COPY_FILES等定义的变量都会通过import-procts->import-nodes函数重新生成以下格式的变量:
PRODUCTS_xxxx_PRODUCT_NAME = name;
PRODUCTS_xxxx_PRODUCT_COPY_FILES = _flie;
注意:其中xxxx根据find到产品AndroidProcts.mk所在的相对路径从而确定变量LOCAL_DIR,进一步确定其PRODUCT_MAKEFILES的文件路径,一般位于device或者vendor目录下的子目录中,如device/xxx/fish/fish.mk。
1 PRODUCT_MAKEFILES := \
2 $(LOCAL_DIR)/xxxx/fish.mk \ 这里必须写成LOCAL_DIR,变量值是取决于AndroidProct.mk所在的路径。
以上的一组变量格局_proct_var_list来生成,每个proct node都会对应有一个这样的一组新的变量。而这些变量的初始化都是系统或者模块编译前的初始化过程(根据TARGET_PRODUCT来初始化Proct相关的配置,以及确定TARGET_DEVICE),还没有到执行android.mk,任何一次编译都会执行该初始化过程。