安卓官方文档(安卓开发用哪个版本的eclipse)
本文目录
- 安卓开发用哪个版本的eclipse
- b站官方文档在哪
- 安卓端官方WPS,清新无广告,还功能齐全
- 安卓手机怎么查看文档
- 安卓shoulddisableview是做什么用的
- 安卓内外部存储完全解析 -- 别再弄混了
- 安卓系统如何让一个程序一直后台运行
- 安卓手机怎么开启view server的服务
安卓开发用哪个版本的eclipse
看Android官方文档就能知道The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.这是官方文档原话,官方推荐使用Eclipse Classic , 这个版本,其他选择可以是Eclipse IDE for Java Developers,Eclipse for RCP and RAP Developers这两个版本,至于Eclipse的版本号的选择要安装最新的ADT的话最好选3.6以上的Eclipse。要学Android开发强烈建议去看官方的开发文档和API,现在很多中文教材根本就是照着官方文档直接翻译的。
b站官方文档在哪
目录里在目录里。《bilibili》是中国大陆一个动画、游戏相关的弹幕视频分享网站,b站官方文档在目录里,其中files文件夹是存放下载缓存文件的。
安卓端官方WPS,清新无广告,还功能齐全
1、软件介绍
要说PC端哪个办公软件功能最强大,那肯定是office,但要说手机端,那就是咱国产WPS的天下了。
毕竟手机并不是的重灾区,多是用来查看文档的,大部分自带的都不如WPS来的实用。
但国产的都有个小毛病,臃肿且广告多,这不,就有个小清新版。
不是修改版,不是修改版,不是修改版,可以登录账号的。
界面如下。
图1.1
2、软件特点
1、符合国人操作习惯,功能强大,各种格式文件都能打开。
2、支持登录,云文档功能,手机电脑文件互联。
3、免费,体积小、加载文档速度快。(只有38M,应用商店70M)
4、常用工具齐全,且清新无广告。(如上图1.1所示)
3、如何获取
需要注意的是,软件第一次打开会出现以下界面,需要激活,不过也简单。
只需要点击“产品密钥激活”将以下激活码任意输入一个即可,一个不行换另一个。
R8R8P-MTT6F-KLRPM-J7CAB-PJM8C
7LR67-WTXPA-KLUHV-GEK2E-QW4CK
EUYTH-3KWKL-PJMX7-XBCPW-9U2DD
THUV2-32HH7-6NMHN-PTX7Y-QQCTH
A4XV7-QP9JN-E7FCB-VQFRD-4NLKC
U2PWU-H7D9H-69T3B-JEYC2-3R2NG
7G2HE-JR8KL-ABB9D-Y7789-GLNFL
9DP6T-9AGWG-KWV33-9MPC8-JDCVF
R7AKQ-KLBXV-RNX3F-BPACQ-NQDGE
安卓手机怎么查看文档
安卓手机安装不了软件原因和方法
1、最常见的就是,未知软体安装失败。
这个其实在塞班手机的时候就有这个权限,这个也只要在手机安全设置里面设置就可以了。这也是运营商为了保证用户不过乱的安装非官方应用程序而造成手机系统紊乱的现象而添加的一个选项。
解决办法:设置安装权限即可
2、系统版本原因
硬件设施的原因。骑什么马,套什么鞍,破锅就配个破锅盖吧,这个是一个无法避免的问题,你也就不要纠结了。除非换掉现在有的,那就是唯一解决方法,不然你就不要纠结那么多了。系统原因,现在很多软件都是不支持4、0以下系统的,这个还是可以通过刷机升级来解决
解决方法:通过刷机升级系统解决
3、安装软件一直显示正在安装
可能你的手机里有不少APP已经有一段时间没用了,但是看到新的APP还是会情不自禁地下载安装,可是有时候安装APP时却会一直显示正在安装。
想必任何人碰到这个问题都是非常苦恼的吧,毕竟一直显示正在安装真的很让人抓不着头脑,那么下面就一起去看看具体原因和解决方法吧!
当你发现无论安装什么软件都提示安装超时的时候,一定要第一时间打开Root Explorer,进入data/app文件夹,然后点击Perferences,在Sort order一栏点击Date(desc)按钮:
接着你会惊奇的’发现,最先提示安装超时、没有安装上的那款软件居然在文件夹里的最上面,赶紧删除掉该文件,然后重启,问题解决:
如果你不这么做的话,那么一定会重启→系统崩溃。所以,这一做法是你最后的救命稻草。
4、提示‘应用程序未安装’解决方法
最近手机不管装设么都显示“应用程序未安装” 网上查了查,发现有这种问题的机油不在少数。现在我把网上流传比较广泛的几种解决方法汇总一下,方便各位遇到同样问题的机油查看。
第一种:最普遍的解决方案
储存模式连接电脑找到SD卡目录下(已经root的机油可以用R、E管理器)的 、android_secure 文件夹,里面应该会有一个smdl2tmp1、asec,也可能是其他名称,总之与正常程序命名格式明显不一样的文件,删除,再次安装软件,看看是不是好了。
第二种:就算以前没有装过的程序也显示“应用程序未安装”的话
备份好存储卡的东西,然后用读卡器插到电脑上,格式化,文件类型选 FAT32,不要选快速格式化。有些做过 APP2SD 或者弄过 swap 的可能会出现这种情况。
第三种:算是我自己摸索的吧,其实也和第四种差不多,改进了一下而已
我卡里有一个 EXT 分区,但是上次刷机后就没用过, 用第四种方法不行,我就考虑是不是问题出在这里。 然后我先用手机把内存卡格式化了一遍,分区消失, 然后插在电脑上又格了一遍,然后问题就解决了,当然,分区没有了。
第四种:已经安装了那个软件,在更新过程中显示应用程序未安装
只要删除原有的软件,然后再安装即可。如果还是不行进入菜单 设置-应用程序-管理应用 设置-应用程序-管理应用程序,将相关程序残余清除(程序,将相关程序残余清除(一般可以将 0 KB 的都 删除)如果还是不行,那就用删除)如果还是不行,那就用 R、E 文件管理器 删除 中的***、apk ***、odex, 掉 ststem/app 中的***、apk 和 ***、odex,利用搜索 功能,将相同的文件名的文件全删除。
5、安装软件解析包错误解决办法
本来是满心欢喜打算体验某款APP,可是在安装APP途中弹出“解析包时出现问题”这样的提示,会不会觉得很揪心呢?那么安卓解析包出现问题有没有好的解决办法呢?下面就来介绍一下安卓解析包出现问题的一些解决方法!
安卓手机解析包时出现问题的解决方法:
1、安卓apk程序解析包出现问题的话,可能是由于你下载的apk程序本身就有问题,程序的压缩包可能在下载过程中被损坏了,建议请重新下载一次。
2、如果重新下载也解决不了安卓解析包出现问题的话,很大一个可能就是在于你的手机的配置参数不支持这款软件,举个例子吧,如果一款apk程序的系统版本要求在安卓2、2以上,而你的手机则是安卓2、1系统,就会出现“解析包时出现问题”这样的解析错误。
3、还有一种可能是由于RE文件管理设置的缘故,进入RE管理器——设置——一键设置——主文件夹选项,有的朋友反映如果将其设置成“sdcard\ ”就会出现“解析包出现问题”的错误提示,而如果将其设置“\ ”就可以成功安装,建议诸位可以试试!
安卓shoulddisableview是做什么用的
在Android的官方文档中提到: To preserve security, Hierarchy Viewer can only connect to devices running a developer version of the Android system. 即:出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器(准确地说,...
安卓内外部存储完全解析 -- 别再弄混了
安卓开发离不开手机存储,然而大部分人对于安卓开发中的存储概念存在误区,内部外部SD卡傻傻分不清?
以下引用来自对 官方文档 的理解
呵呵呵,先别说话,然而重点来了(敲黑板),按照官方的说法,
内部存储是指系统的存储空间,没有root是访问不到的呦亲,比如sharedPreferenced或者database都是保存在这里面的。
外部存储,又分为 2 部分:
然而现实中,常常有同事把手机那个32G,64G存储叫做内部存储= =,宝宝好累,人家明明是 ExternalStorage !!
希望本篇能让大家对内外部存储有一个正确鲜明的认识
getFilesDir()
路径如下
文档 云:若想操作该路径,你需要一个输出流:
就像这样:
注: this 是 context 对象
在
路径下会看到新文件哦
如果你还想读取的话, 文档 云:你需要一个输入流:
Log如下
getCacheDir()
文档 云:
路径如下:
特别的,还有getDir() :
getDir("- -!.txt", Context.MODE_PRIVATE).getAbsolutePath()
路径如下:
app_是系统自己加上去的
内部存储就是系统的存储,没有root你是看不到的,内部存储最大特点就是可以用Context对象调用各个获取路径的方法。比如: context.fileList() 那就是
下的文件遍历。
而 deleteFile("ABC") 就是
删除下名为 ABC 的文件 《/br》《/br》《/br》
操作外部存储你首先需要以下权限
当你申请了write权限,那么read权限默认也就通过啦
再判断状态:
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState))
Environment.getExternalStorageDirectory()
这个路径根据手机厂家不同会有些许变化
直接传入 Environment 中的常量获取相应的路径,如下:
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_ALARMS));
或者
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES));
公有目录下,系统会区分不同类别 (例如铃声在系统设置中显示为铃声而不是音乐)
4.4以后访问该目录不再需要权限了
getExternalFilesDir(String type)
eg. getExternalFilesDir(Environment.DIRECTORY_MUSIC)
特别的:ContextCompat下的
ContextCompat.getExternalFilesDirs(context,type)
返回一个File,在4.4以后第一条数据默认外部主存储目录,第二条数据就是sd卡路径啦,但是注意4.4之前是没有第二条数据的哦
该目录下的特点是卸载程序后,该目录和其下所有文件均会被删除
getExternalCacheDir()
注意,使用该目录注意管理空间,你不能等系统帮你清理,而是自己清理不再需要的缓存
特别的:ContextCompat下的
ContextCompat.getExternalCacheDirs()
道理同上
发现特点了吗朋友,无论外部内部,只有路径中有包名,那么就是私有的,而且是随着程序的卸载而被删除的, 有包名的路径均是Context中的方法,而公有的路径均是Environment调用的
这个货真真是要了老命,一般的方法根部不好使,结合网上有的方法加上公司项目中的方法,总结如下:
百分百好用的获取SD卡路径方法:
最后集合 path 中的值就是SD卡根目录
虽然无视版本百分百好用,但是如果你的手机有SD卡槽却没插SD卡,该方法最后 path 返回的是 null ,也就是说该方法无法判断到底是没插SD卡还是根本不支持SD卡
其实还有一种方法
String path = System.getenv("SECONDARY_STORAGE");
该方法只要你手机支持SD卡,无论你插没插SD卡,均会返回SD卡路径,但是 6.0及以上该方法被移除
Environment中源码其实就是根据这个方法获取路径的
安卓官方文档大家一定要看,他就是我们开发者的权威呀,圣经呀!!
安卓系统如何让一个程序一直后台运行
Android开发的过程中,每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,然后在onStartCommand方法中做一些处理。然后我们注意到这个函数有一个int的返回值从Android官方文档中,我们知道onStartCommand有4种返回值:START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。START_NOT_STICKY:“非粘性的”。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统不会自动重启该服务。START_REDELIVER_INTENT:重传Intent。使用这个返回值时,如果在执行完onStartCommand后,服务被异常kill掉,系统会自动重启该服务,并将Intent的值传入。START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保证服务被kill后一定能重启。现在的安卓手机,只要一长按home键,通常都会列出近期任务,这里可以干掉所有进程所以一直不断的在后台运行是不行的,但是你可以通常广播来激活你的service
安卓手机怎么开启view server的服务
在Android的官方文档中提到:To preserve security, Hierarchy Viewer can only connect to devices running a developer version of the Android system.即:出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器(准确地说,只有ro.secure参数等于0且ro.debuggable等于1的android系统)。Hierarchy Viewer在连接手机时,手机上必须启动一个叫View Server的客户端与其进行socket通信。而在商业手机上,是无法开启View Server的,故Hierarchy Viewer是无法连接到普通的商业手机。 Android源码实现这一限制的地方在:ANDROID源码根目录\frameworks\base\services\java\com\android\server\wm\WindowManageService.java中的一段:=====================================================================================public boolean startViewServer(int port) {if (isSystemSecure()) {return false;}if (!checkCallingPermission(Manifest.permission.DUMP, ”startViewServer”)) {return false;}….===================================================================================== 检验一台手机是否开启了View Server的办法为:adb shell service call window 3若返回值是:Result: Parcel(00000000 00000000 ‘……..’)” 说明View Server处于关闭状态若返回值是:Result: Parcel(00000000 00000001 ‘……..’)” 说明View Server处于开启状态 若是一台可以打开View Server的手机(Android开发版手机 、模拟器or 按照本帖步骤给系统打补丁的手机),我们可以使用以下命令打开View Server:adb shell service call window 1 i32 4939使用以下命令关闭View Server:adb shell service call window 2 i32 4939实现步骤:***隐藏网址***前提是:你的手机已经获得ROOT权限,且有BUSYBOX另外:请仔细阅读本帖的评论,或许你会有新的收获。 1.将商业手机通过USB连接PC,确保adb服务运行正常 2.备份手机上/system/framework/中的文件至PC。备份的时候请确保PC上保存备份文件的文件夹结构与手机中的/system/framework相同例如:新建 ANDROID_SDK_ROOT\system\framework文件夹 (本文出现的ANDROID_SDK_ROOT指你安装Android SDK的根目录)接着在cmd中跳转至ANDROID_SDK_ROOT\platform-tools文件夹下,输入以下代码进行备份:adb pull /system/framework ANDROID_SDK_ROOT\system\framework 3.进入adb shell,输出BOOTCLASSPATH:推荐的做法:1. 在adb shell中echo $BOOTCLASSPATH 》 /sdcard/bootclasspath.txt2. 退回到windows cmd中,输入adb pull /sdcard/bootclasspath.txt3. bootclasspath.txt将会保存在C:\Users\你的用户名 文件夹下在第十五步中将会用到这个txt中的内容。 4.下载baksmali 和smali工具。这两个工具是用来反编译和编译odex文件的。下载地址:***隐藏网址******隐藏网址***假设我将这两个jar都下载到了ANDROID SDK根目录下。 5.运行baksmali反编译\system\framework下的services.odex文件:java -jar ANDROID_SDK_ROOT\baksmali-1.4.2.jar -a 17 -x ANDROID_SDK_ROOT\system\framework\services.odex -d ANDROID_SDK_ROOT\system\framework***隐藏网址***想特别说明的是“-a”后跟的数字,表示你系统的API Level(与你的系统版本有关)。系统版本和API Level的对照关系如下:\(另外,你不会连java -jar都不能运行吧?快去装jdk!)此步成功的话,在同文件夹下(对于我,就是ANDROID_SDK_ROOT),会有个out文件夹生成 这里顺便解释一下odex文件和dex文件。dex文件:Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java的字节码而是Dalvik字节码,16进制机器指令。odex文件:将dex文件依据具体机型而优化,形成的optimized dex文件,提高软件运行速度,减少软件运行时对RAM的占用。smali文件:将dex文件变为可读易懂的代码形式,反编译出文件的一般格式。 6.用Eclipse打开out\com\android\server\wm\WindowManagerService.smali文件查找.method private isSystemSecure()Z这个函数================================================================.method private isSystemSecure()Z .registers 4 .prologue .line 5965 const-string v0, “1″ const-string v1, “ro.secure” const-string v2, “1″ invoke-static {v1, v2}, Landroid/os/SystemProperties;-》get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;-》equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_22 const-string v0, “0″ const-string v1, “ro.debuggable” const-string v2, “0″ invoke-static {v1, v2}, Landroid/os/SystemProperties;-》get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;-》equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_22 const/4 v0, 0×1 :goto_21 return v0 :cond_22 const/4 v0, 0×0 goto :goto_21.end method================================================================在这段代码的倒数7,8行“:goto_21”和“return v0”之间加入“const/4 v0, 0×0″一行.这样,就使得v0返回的值永远为0×0,即false,这样就跳过了WindowManagerService.java里对isSystemSecure的判断。.method private isSystemSecure()Z函数最后变为:================================================================.method private isSystemSecure()Z .registers 4 .prologue .line 6276 const-string v0, “1″ const-string v1, “ro.secure” const-string v2, “1″ invoke-static {v1, v2}, Landroid/os/SystemProperties;-》get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;-》equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_22 const-string v0, “0″ const-string v1, “ro.debuggable” const-string v2, “0″ invoke-static {v1, v2}, Landroid/os/SystemProperties;-》get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;-》equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_22 const/4 v0, 0×1 :goto_21 const/4 v0, 0×0 return v0 :cond_22 const/4 v0, 0×0 goto :goto_21.end method===================================================================================== 7. 现在运行smali,重新编译:java -jar smali-1.4.2.jar -o classes.dex这时候,应该在ANDROID_SDK_ROOT文件夹中出现了classes.dex文件 8. 下载windows下的zip工具:***隐藏网址***假设,我也把zip.exe放进了ANDROID_SDK_ROOT文件夹 9.确认当前cmd命令行运行目录为ANDROID_SDK_ROOT,运行:zip.exe services_hacked.jar ./classes.dex这时候在ANDROID_SDK_ROOT文件夹下,出现了打包好的services_hacked.jar 10.进入adb shell,输入su获得ROOT权限 11.接着输入mount,查看哪个分区挂载了/system,例如我的是:\ 接着,输入以下命令重新挂载/system,并更改/system权限(请将“/dev/block/mmcblk0p25”替换成你的/system挂载分区): mount -o rw,remount -t yaffs2 /dev/block/mmcblk0p25 chmod -R 777 /system 使得/system 可以被我们任意修改 这一步的作用,主要是为了第17步能够将/system/framework里的services.odex替换掉。这一步若不成功,在第17步的时候可能出现权限不够,无法替换的错误(Read-Only File System) 12.下载dexopt-wrapper文件***隐藏网址***我们也将dexopt-wrapper文件放在ANDROID_SDK_ROOT文件夹中 13.将services_hacked.jar和dexopt-wrapper复制到手机的/data/local/tmp文件夹中adb push ANDROID_SDK_ROOT/services_hacked.jar /data/local/tmpadb push ANDROID_SDK_ROOT/dexopt-wrapper /data/local/tmp 14.进入adb shell,输入su后,将dexopt-wrapper的权限改为777chmod 777 /data/local/tmp/dexopt-wrapper 15.在adb shell中cd到/data/local/tmp文件夹下,运行:./dexopt-wrapper ./services_hacked.jar ./services_hacked.odex 《本帖第三步存的地址,但是要删除其中的”:/system/framework/services.jar”》这一步就是将第七部生成dex文件最终优化成了odex文件。===================================================================================================例如我的命令是:./dexopt-wrapper ./services_hacked.jar ./services_hacked.odex /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/android.policy.jar:/system/framework/apache-xml.jar:/system/framework/HTCDev.jar:/system/framework/HTCExtension.jar:/system/framework/filterfw.jar:/system/framework/com.htc.android.bluetooth.jar:/system/framework/wimax.jar:/system/framework/usbnet.jar:/system/framework/com.orange.authentication.simcard.jar=================================================================================================== 这样,便在/data/local/tmp文件夹中生成了我们自己的odex:services_hacked.odex\ 16.给我们自己生成的services_hacked.odex签名:busybox dd if=/system/framework/services.odex of=/data/local/tmp/services_hacked.odex bs=1 count=20 skip=52 seek=52 conv=notrunc参数解释:if = input fileof = output filebs = block size (1 byte)count = number of blocksskip = input file offsetseek = output file offsetconv=notrunc – don’t truncate the output file. 17.将/system/framework里的services.odex替换成我们自己制作的services_hacked.odex吧!dd if=/data/local/tmp/services_hacked.odex of=/system/framework/services.odex这一步运行后,过一小会儿(1分钟以内)手机就自动重启了!稍等片刻吧! 18.成功重启后,用以下命令打开View Server:adb shell service call window 1 i32 4939用以下命令查看View Server是否打开:adb shell service call window 3返回的值若是Result: Parcel(00000000 00000001 ‘……..’),那么你就起了!
更多文章:
linux web服务器配置(如何在linux系统搭建web服务器java)
2024年8月26日 08:10
js圣诞树特效(李小龙惊人的“背部圣诞树”,究竟是怎样练成的)
2024年7月10日 16:12
datasource health check failed(java中运行时出现下面的错误是什么原因呢其中有配置spring)
2024年9月26日 04:16
java中assert的作用(Assert 在Java和Groovy中的区别 / 蓝讯)
2024年9月10日 03:25
web浏览器在哪里打开(打开web浏览器,在哪输入搜索引擎的地址)
2024年5月9日 09:06
人成免费入口2022(2022年湖北成人高考报名入口在哪里最新报考流程)
2024年9月4日 01:40
电脑开机显示rpc服务器不可用,开不了机怎么办?打印时出现,rpc服务器不可用是为什么
2024年7月16日 19:52
js和php哪个难(java,js,php,c++这些语言哪种好学一点)
2024年7月23日 14:42
flash教程电子书下载(请问哪里有flash教程免费 下载 )
2024年6月30日 21:24
两个表格相同数据匹配(excel两个表格如何匹配相同的内容)
2024年7月30日 06:06
onmouseout用法(onmouseover,onmouseout的使用方法)
2024年5月6日 01:57
jndi连接数据库(jsp怎么用jndi连接SQLServer2000数据库,哪位高手教我,请给出实例,谢谢!)
2024年7月5日 16:17