- 浏览: 119510 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (135)
- java (135)
- [转]c# 画圆角矩形 (1)
- 设计模式生活实例 (1)
- .nET2.0小技巧 (1)
- 从另一个角度看敏捷实践(一)--IPM:承诺的仪式 (1)
- javascript字符串转json对象 (1)
- 使用BeanUtils时,Date类型值为空的解决方法 (1)
- Lenovo V460+Ubuntu 11.10 无线网问题 (1)
- Lucene 索引和搜索过程核心类详解 (1)
- Android短信编解码方式 (1)
- 股神巴菲特十大致富秘籍 (1)
- Map遍历的三种方法 (1)
- Android中用Toast.cancel()方法优化toast内容的显示 (1)
- ViewFlipper “Receiver not registered” Error (1)
- javax.xml.transform.TransformerFactoryConfigurationError (1)
- JNI调用的注意事项 (1)
- JUnit单元测试感悟 (1)
- 用C#写定时关机的程序 (1)
- ASP.NET开发工具Web Matrix介绍 (1)
- MapXtreme2004代码 MapControl控件中显示地图文件 (1)
- 《使用 Microsoft .NET 的企业解决方案模式》读书笔记3 (1)
- 微创短信开发平台 (1)
- 谈谈Q+平台的技术实现 (1)
- 手机防盗软件实现(源码) (1)
- 虚析构函数(总结 帖子) (1)
- c语言中去除const修饰 (1)
- ORA-01012: not logged on 解决办法 (1)
- paypal提现如何省钱 (1)
- 数独suduku (1)
- MyISAM InnoDB 区别 (1)
- 随 笔 (1)
- Android上的log,日志相关 (1)
- 百度质量部实习居然通过了~ (1)
最新评论
-
野狐禅:
ext.get('imagebrowse') is null
ExtJs上传图片预览功能 -
zhuyl_wind:
不切实际,呵呵
[]5年内买车买房-理财篇 -
in南京:
关键你那两千块钱就够交一个多月的房租!换个城市你那六百也远远不 ...
[]5年内买车买房-理财篇 -
javac_xinyun:
呵呵,看完了,确实不错,貌似第一年的房租每月算进去 ,人际关系 ...
[]5年内买车买房-理财篇 -
dishikun:
貌似很不错,就是没把房租算进去!
[]5年内买车买房-理财篇
package com.shishixun.installapk;
import java.io.file;<br>import java.io.filefilter;<br>import java.util.arraylist;
import android.app.activity;<br>import android.content.pm.packageinfo;<br>import android.content.pm.packagemanager;<br>import android.graphics.drawable.drawable;<br>import android.os.bundle;<br>import android.text.format.formatter;<br>import android.util.log;
public class mainactivity extends activity {<br> /** called when the activity is first created. */<br> @override<br> public void oncreate(bundle savedinstancestate) {<br> super.oncreate(savedinstancestate);<br> setcontentview(r.layout.main);<br> final file appfolder = new file( "/sdcard" );<br> arraylist<file> files = getfiles( appfolder,<br> true );<br> packagemanager pm = getpackagemanager( );<br> for ( int i = 0, size = files.size( ); i < size; i++ )<br> {<br> file f = files.get( i );<br> packageinfo pi= pm.getpackagearchiveinfo( f.getabsolutepath( ), 0 );<br> if ( pi != null )<br> {<br> apkinfo holder = new apkinfo( );<br> holder.file = f;<br> holder.pkgname = pi.packagename;<br> holder.size = f.length( );<br> holder.sizestring = formatter.formatfilesize( mainactivity.this,<br> holder.size );<br> holder.version = pi.versionname == null ? string.valueof( pi.versioncode )<br> : pi.versionname;<br> system.out.println("file="+f+"pkgname="+holder.pkgname +"size"+holder.sizestring+"version"+holder.version );<br> }<br> }
}<br> <br> <br> arraylist<file> getfiles( file parent, final boolean recursive )<br> {<br> final arraylist<file> files = new arraylist<file>( );
filefilter filter = new filefilter( ) {
public boolean accept( file f )<br> {<br> if ( f.isfile( )<br> && f.getname( ).tolowercase( ).endswith( ".apk" ) )
{<br> files.add( f );<br> }<br> else if ( recursive && f.isdirectory( ) )<br> {<br> try<br> {<br> // try skip links<br> if ( f.getabsolutepath( )<br> .equals( f.getcanonicalpath( ) ) )<br> {<br> f.listfiles( this );<br> }<br> }<br> catch ( exception e )<br> {<br> log.e( mainactivity.class.getname( ),<br> e.getlocalizedmessage( ),<br> e );<br> }<br> }<br> return false;<br> }<br> };
parent.listfiles( filter );
return files;<br> }<br> <br> <br> /**<br> * apkinfo<br> */<br> private static final class apkinfo<br> {
file file;<br> charsequence label;<br> string pkgname;<br> string version;<br> string sizestring;<br> long size;<br> drawable icon;<br> int installed;<br> boolean checked;
apkinfo( )<br> {
}<br> }<br>}
import java.io.file;<br>import java.io.filefilter;<br>import java.util.arraylist;
import android.app.activity;<br>import android.content.pm.packageinfo;<br>import android.content.pm.packagemanager;<br>import android.graphics.drawable.drawable;<br>import android.os.bundle;<br>import android.text.format.formatter;<br>import android.util.log;
public class mainactivity extends activity {<br> /** called when the activity is first created. */<br> @override<br> public void oncreate(bundle savedinstancestate) {<br> super.oncreate(savedinstancestate);<br> setcontentview(r.layout.main);<br> final file appfolder = new file( "/sdcard" );<br> arraylist<file> files = getfiles( appfolder,<br> true );<br> packagemanager pm = getpackagemanager( );<br> for ( int i = 0, size = files.size( ); i < size; i++ )<br> {<br> file f = files.get( i );<br> packageinfo pi= pm.getpackagearchiveinfo( f.getabsolutepath( ), 0 );<br> if ( pi != null )<br> {<br> apkinfo holder = new apkinfo( );<br> holder.file = f;<br> holder.pkgname = pi.packagename;<br> holder.size = f.length( );<br> holder.sizestring = formatter.formatfilesize( mainactivity.this,<br> holder.size );<br> holder.version = pi.versionname == null ? string.valueof( pi.versioncode )<br> : pi.versionname;<br> system.out.println("file="+f+"pkgname="+holder.pkgname +"size"+holder.sizestring+"version"+holder.version );<br> }<br> }
}<br> <br> <br> arraylist<file> getfiles( file parent, final boolean recursive )<br> {<br> final arraylist<file> files = new arraylist<file>( );
filefilter filter = new filefilter( ) {
public boolean accept( file f )<br> {<br> if ( f.isfile( )<br> && f.getname( ).tolowercase( ).endswith( ".apk" ) )
{<br> files.add( f );<br> }<br> else if ( recursive && f.isdirectory( ) )<br> {<br> try<br> {<br> // try skip links<br> if ( f.getabsolutepath( )<br> .equals( f.getcanonicalpath( ) ) )<br> {<br> f.listfiles( this );<br> }<br> }<br> catch ( exception e )<br> {<br> log.e( mainactivity.class.getname( ),<br> e.getlocalizedmessage( ),<br> e );<br> }<br> }<br> return false;<br> }<br> };
parent.listfiles( filter );
return files;<br> }<br> <br> <br> /**<br> * apkinfo<br> */<br> private static final class apkinfo<br> {
file file;<br> charsequence label;<br> string pkgname;<br> string version;<br> string sizestring;<br> long size;<br> drawable icon;<br> int installed;<br> boolean checked;
apkinfo( )<br> {
}<br> }<br>}
发表评论
-
百度质量部实习居然通过了~
2012-02-08 12:23 992[size=small;]? ? ?本来打算在软工所苦 ... -
Android上的log,日志相关
2012-02-07 14:18 1535摘自:http://blog.csdn.net/met ... -
随 笔
2012-02-04 13:39 600金风玉露一相逢,便胜却人间无数。英文版: chemis ... -
MyISAM InnoDB 区别
2012-02-02 16:59 737<h1 id="artibody ... -
数独suduku
2012-01-31 14:38 916sudu sudu sudu sudu sudu su ... -
paypal提现如何省钱
2011-12-28 16:58 1224据PayPal中文注册得知,如今很多收样品费的外贸商户 ... -
ORA-01012: not logged on 解决办法
2011-12-28 13:08 3512<span style="font-f ... -
c语言中去除const修饰
2011-12-21 10:54 1435[size=16px;]<span style= ... -
虚析构函数(总结 帖子)
2011-12-21 09:54 706<span style="" ... -
手机防盗软件实现(源码)
2011-12-20 12:54 938<a href="http://blo ... -
谈谈Q+平台的技术实现
2011-12-20 09:49 963这篇文章是我个人 ... -
微创短信开发平台
2011-12-19 11:39 772在网上闲逛,发现了一个站点,微创短信开发平台(http ... -
《使用 Microsoft .NET 的企业解决方案模式》读书笔记3
2011-12-19 10:24 783第3章 Web表示模式 没有一个设计策略能够适合所有情 ... -
MapXtreme2004代码 MapControl控件中显示地图文件
2011-12-15 14:29 912::<?xml:namespace prefix ... -
ASP.NET开发工具Web Matrix介绍
2011-12-15 13:39 970<p class="MsoPlain ... -
用C#写定时关机的程序
2011-12-15 11:14 705</span></font>& ... -
JUnit单元测试感悟
2011-12-14 11:29 864<p class="MsoNorma ... -
JNI调用的注意事项
2011-12-14 09:34 755JNI的简单教程网上很多,看看就能够明白,照着操作也基 ... -
javax.xml.transform.TransformerFactoryConfigurationError
2011-12-13 13:34 854<span style="" ... -
ViewFlipper “Receiver not registered” Error
2011-12-12 10:59 1127偶尔出现这个错误: <span> < ...
相关推荐
5. **权限管理**:在Android 6.0及以上版本,运行时权限管理需要在安装APK前获取写入外部存储的权限。如果设备没有SD卡,那么内部存储也需要权限。开发者需要在代码中适当地请求这些权限,并处理用户可能拒绝的情况...
标题“手机apk拷贝到sdcard”涉及到的是Android操作系统中移动应用程序(APK)的存储管理,特别是如何将APK文件从设备的内部存储移动到外部可移除的SD卡上。这一操作对于用户来说,可能是因为他们希望节省手机内部...
Android 获取未安装的APK图标、版本号、包名等信息方法 Android 获取未安装的APK图标、版本号、包名等信息方法是 Android 应用程序开发中的一种常见需求。通过本文,我们将学习如何获取未安装的APK图标、版本号、包...
1. **获取APK文件**:首先,你需要拥有APK文件,这可以通过从Google Play商店下载,或者从第三方应用市场、开发者网站获取。如果你有APK的本地副本,通常会保存在 `/sdcard/Download` 或者自定义的下载路径中。 2. ...
APK包含了应用的代码、资源、元数据等所有必要的组件。当涉及到“apk汉化”时,这意味着我们需要修改APK文件中的语言资源,使其适应中文用户的需求。下面我们将深入探讨如何使用工具进行APK的汉化以及在模拟器上安装...
在Android系统中,APK文件是应用程序的主要载体,它包含了应用的所有代码、资源、资产以及配置文件。"从ROM中提取apk"这个主题涉及到的是如何从设备的Read-Only Memory (ROM) 中获取预装应用的APK文件,这对于开发者...
本文主要探讨了如何在Android模拟器上创建和管理SDCard镜像文件,以及如何使用ADB工具进行文件的推送和拉取。 首先,创建SDCard镜像文件是通过`mksdcard`命令完成的。这个命令允许开发者指定镜像文件的名称(如`...
3. **存储路径**:Android提供不同的存储路径,如`Environment.getExternalStorageDirectory()`获取公共SD卡目录,`getExternalFilesDir()`获取应用私有的外部存储空间。 4. **文件I/O操作**:使用Java或Kotlin的流...
`PackageManager`是Android系统提供的一个类,它负责管理设备上所有应用程序的安装、查询、卸载等操作。获取APK信息通常涉及以下步骤: 1. 创建一个`PackageManager`对象,可以通过上下文`Context`的`...
1.请求服务器获取服务器存储的版本信息 2.通过比对手机端的版本和服务器的版本 3如果要更新需要符合以下判断条件 ... 2)sdcard剩余存储量与apk文件大小的比对 3)是否在wifi环境下 4.下载完成后自动安装
5. **打包与部署**:在打包场景时,要确保所有依赖项(包括PicoVR SDK的库文件)都被正确地包含在apk中。此外,根据不同的设备特性,可能需要调整构建设置,如屏幕分辨率、目标API版本等。 总的来说,通过Unity结合...
在上面的示例代码中,使用了Environment类来获取外部存储目录的路径,例如/sdcard/dictionary目录。 知识点9:Android中的数据库路径 在Android中,数据库路径是一种非常重要的编程技术。在上面的示例代码中,使用...
这表明,提供的代码可能是作为学习和参考的片段,可能涵盖了上述的一些步骤,但可能不包括所有细节,比如错误处理、权限获取等。 总的来说,这个压缩包可能是为了教学目的,帮助开发者理解如何在安卓应用中处理文件...
首先,`AudioTest.apk`的核心功能是展示一个自定义的ListView,用于显示存储在/mnt/sdcard/路径下mp3和wav格式的音频文件。在Android中,ListView是展示大量数据的常用组件,它允许用户滚动查看多个项目,且可以进行...
- 将APK文件复制到设备的可读写目录,如 `/sdcard/`。 - 编写一个具有root权限的shell脚本,内容包括`pm install -t -r <apk_path>`,其中`-t`表示允许安装测试版应用,`-r`表示替换已存在的应用。 - 使用Java...
综上所述,通过Android的`DownloadManager`服务,我们可以实现应用的自动下载更新,同时结合SD卡文件管理,将APK保存在合适的位置,并在下载完成后进行安装。这是一个实用的功能,可以极大地提升用户体验,尤其是...
fastboot getvar all 获取手机所有信息 fastboot getvar product 获取手机内部版本号(一般为vle或villec2) fastboot getvar cid 获取cid (刷RUU必备啊) fastboot oem get_identifier_token 获取用户标识码(官...
由于Google Play商店可能没有提供该应用,你可能需要从官方网站或者其他安全的第三方应用市场获取APK文件进行安装。安装完成后,打开UltraISO,你可以浏览本地存储,包括SD卡,找到你的中文镜像文件。 在上传镜像...
2. **卸载APK**:通过`adb shell`进入模拟器环境,然后使用`ls -l`列出`data/app`目录下的所有APK文件,最后使用`rm`命令删除指定的APK文件。 #### 四、对话框的简单应用 在Android应用中,`AlertDialog`是一种...