android有用的知识
DownloadManager是Android为开发者提供的一个后台应用组件,它通过Http层进行文件的下载任务. 添加一个下载任务: 2:如何为DownloadManager设置代理,比如Wap 3:如何在下载过程中监听下载任务 mDownloadCursor =mContext.getContentResolver().query(Downloads.CONTENT_URI, new String[] {Downloads.TITLE, Downloads.STATUS, Downloads.CURRENT_BYTES,}, wherequery.toString(), null,orderBy); 在Android中,申请WakeLock可以让你的进程持续执行即使手机进入睡眠模式,比较实用的是比如后台有网络功能,可以保证操作持续进行. wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.TAG); 别忘了在操作完毕之后释放掉 wakeLock.release(); 最近在做项目的时候,遇到这样的问题,我需要能够把整个application都杀死,找了半天都没有找到,后来问同事才知道答案。代码如下: ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 在此做个记录,以备忘记! Android 获取系统中所有安装的APK的信 private public final int getCount() { 安装完Android SDK后,默认会在C盘创建一个.Android的文件夹用来存放AVD.此时如果想修改AVD的路径,可以设置一个环境变量ANDROID_SDK_HOME=要设置的路径(比如:F:\\Java\\Android),重新启动Eclipse,修改成功! android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下: public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic); private byte[] Bitmap2Bytes(Bitmap bm){ 4、 byte[] → Bitmap Java代码 private Bitmap Bytes2Bimap(byte[] b){ 通过分析Launcher的生成快捷方式的过程,找出了使用Intent发送请求,Launcher通过自己注册的InstallShortCutReceiver和UnInstallShortCutReceiver实现了快捷方式图标的生成与移除过程。本文主要分析外部apk如何使用Intent请求生成快捷方式和移除快捷方式图标的问题。 生成快捷方式代码: Java代码 private static final String ACTION_INSTALL_SHORTCUT = /** Intent shortcutIntent = new Intent(ACTION_INSTALL_SHORTCUT); intent2.setComponent(new ComponentName(this.getPackageName(), shortcutIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, intent2); 注:Intent intent2 = new Intent(Intent.ACTION_MAIN); 这个也可以换成的构造参数也可以是Intent.ACTION_CREATE_SHORTCUT,也可以生成快捷方式图标,但是这样不标准,在删除的时候如果不和这个对于相同则无法删除。所以还是用Intent.ACTION_MAIN。 那么删除快捷方式的代码是: private static final String ACTION_UNINSTALL_SHORTCUT = Intent intent = new Intent(ACTION_UNINSTALL_SHORTCUT ); 常用的Android自定义主题
•android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式
•android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏
•android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏
•android:theme="Theme.Light" 背景为白色
•android:theme="Theme.Light.NoTitleBar" 白色背景并无标题栏
•android:theme="Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏
•android:theme="Theme.Black" 背景黑色
•android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏
•android:theme="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏
•android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景
•android:theme="Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏 •android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏 •android:theme="Translucent" •android:theme="Theme.Translucent.NoTitleBar" •android:theme="Theme.Translucent.NoTitleBar.Fullscreen" •android:theme="Theme.Panel" •android:theme="Theme.Light.Panel"
使用Intent调用系统的Camera程序的裁剪功能实现图片修剪。
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setClassName("com.android.camera", "com.android.camera.CropImage");
不过可能会出现无法找到Activity的android.content.ActivityNotFoundException异常,这是由于Android内部的gallery和camera都有处理,可以尝试另一种URI,com.android.gallery的com.android.camera.CropImage,在setClassName时,具体的代码为
final Intent intent = new Intent("com.android.camera.action.CROP");
intent.setClassName("com.android.camera", "com.android.camera.CropImage"); intent.setData(Uri.fromFile(mFile)); intent.putExtra("outputX", width); intent.putExtra("outputY", height); intent.putExtra("aspectX", width); intent.putExtra("aspectY", height); intent.putExtra("scale", true); intent.putExtra("noFaceDetection", true); intent.putExtra("output", Uri.parse("file:/" + mFile.getAbsolutePath())); startActivityForResult(intent, REQUEST_CROP_IMAGE); 1.思路是通过自己构建KeyEvent对象来改变键的功能。 例如,把所有的按键都改成“返回键”的功能,代码如下:
//这里构建KeyEvent对象,其功能为返回键的功能
//因此我们按任意键都会执行返回键功能 KeyEvent key = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
//这里传入的参数就是我们自己构建的KeyEvent对象key
super.onKeyDown(key.getKeyCode(), key);
至此OK
控件事件是通过(setOnClickListener)设置其控件的监听器来监听并重写某些函数来处理。
按键按下事件:通过重写onKeyDown方法 按键重复点击:通过重写onKeyMultiple方法 ------------------------------------------------------------------------------------------------------------------------- 获取android IP
参考前人研究成果,非个人创作
1.使用WIFI
首先设置用户权限
其次,代码如下
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取wifi服务 return (i & 0xFF ) + "." +
2.使用GPRS
首先,设置用户上网权限
其次,代码如下
public String getLocalIpAddress()
{ try { for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } } } } catch (SocketException ex) { Log.e("WifiPreference IpAddress", ex.toString()); } return null; }
----------------------------------------------------------------------------------
不知道其他应用的action main情况下启动他
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。
一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动: Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); startActivity(intent); 但是更多的时候,我们一般都不知道应用程序的启动Activity的类名,而只知道包名,我们可以通过ResolveInfo类来取得启动Acitivty的类名。 下面是实现代码: Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); List apps = pm.queryIntentActivities(resolveIntent, 0); ResolveInfo ri = apps.iterator().next(); Intent intent = new Intent(Intent.ACTION_MAIN); ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); android布局属性详解 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft 贴紧父元素的左边缘 android:layout_alignParentRight 贴紧父元素的右边缘 android:layout_alignParentTop 贴紧父元素的上边缘 android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物 第二类:属性值必须为id的引用名“@id/id-name” android:layout_below 在某元素的下方 android:layout_above 在某元素的的上方 android:layout_toLeftOf 在某元素的左边 android:layout_toRightOf 在某元素的右边 android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐 android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐 android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐 android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐 第三类:属性值为具体的像素值,如30dip,40px android:layout_marginBottom 离某元素底边缘的距离 android:layout_marginLeft 离某元素左边缘的距离 android:layout_marginRight 离某元素右边缘的距离 android:layout_marginTop 离某元素上边缘的距离 EditText的android:hint 设置EditText为空时输入框内的提示信息。 android:gravity android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity=”right”则button上面的文字靠右 android:layout_gravity android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity=”right”则button靠右 android:layout_alignParentRight 使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。 android:scaleType: android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别: CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示 CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽) CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽 FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示 FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置 FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置 FIT_XY / fitXY 把图片不按比例扩大/缩小到View的大小显示 MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。 Android的电源管理部分,在纵向上分为四层: 第一部分:Application层 主要是利用Android Frameworks提供的API进行应用级的开发,需要注意的是相关权限的申明: <<>uses-permission android:name="android.permission.WAKE_LOCK" />
<<>uses-permission android:name="android.permission.DEVICE_POWER" />
第二部分:Frameworks层 1. / frameworks/base/core/java/android/os/PowerManager.java v PowerManager:提供对设备的电源进行管理 ? 常见锁类型
? 附加锁类型:仅仅是对Screen有影响
v WakeLock:电源管理对象锁 v Usage: ? 获取PowerManager实例PowerManager pm=(PowerManager) getSystemService(Context.POWER_SERVICE); ? 获取PowerManager.WakeLock实例mWakeLock=pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TEST"); ? Device On mWakeLock.acquire(); ? Device Off mWakeLock.release(); 2. / frameworks/base/core/java/android/os/Power.java 提供一些电源管理的函数,如reboot()。其是JNI的上层接口,其往下调用android_os_power.cpp 3. / frameworks/base/services/java/com/android/server/PowerManagerService.java 电源管理服务,AIDL接口IPowerManager的实现者。 第三部分:JNI层 /frameworks/base/core/jni/android_os_power.cpp 第四部分:Native层 /hardware/libhardware/power/power.c 与Linux kernel交互 第五部分:Linux驱动层 /drivers/android/power.c 第六部分:使用电源管理注意事项 1. 可在onCreate时设置该界面的电源管理,在onDestroy时取消设置 2. 可在onResume时设置该界面的电源管理,在onPause时取消设置 3. 注意设置是以Activity为单位,不是以应用为单位 4. 注意在AndroidManifest.xml中声明该应用有设置电源管理的权限 5. 注意加锁解锁要成对出现 6. 注意多个用途最好用多个锁,不要一锁多用,以免出错 7. 注意对运行在后台和异常时对锁的处理 8. 注意在网络连接或传输时最好加锁,以免传输被中断
http://www.rosoo.net/a/201012/10599.html
9. 注意加锁以保证程序逻辑 http://173.234.53.177/?paged=4 --------------------------------------------------- 通过程序获取android系统手机的铃声和音量。同样,设置铃声和音量的方法也很简单! android中定义的dimension单位有以下这些: android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下: public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic); private byte[] Bitmap2Bytes(Bitmap bm){ 4、 byte[] → Bitmap Java代码 private Bitmap Bytes2Bimap(byte[] b){ •android:theme="@android:style/Theme.Dialog" 将一个Activity显示为对话框模式 |
转载于:https://blog.51cto.com/hongyu0621/1263230
android有用的知识相关推荐
- Paper:《A Few Useful Things to Know About Machine Learning—关于机器学习的一些有用的知识》翻译与解读
Paper:<A Few Useful Things to Know About Machine Learning-关于机器学习的一些有用的知识>翻译与解读 目录 <A Fe ...
- Android 驱动(3)---Android驱动开发知识储备
Android驱动开发知识储备 Android软件层次结构 (1)操作系统层 显示驱动(Frame Buffer),Flash内存驱动,照相机驱动,音频驱动,WiFi驱动,键盘驱动,蓝牙驱动,Bind ...
- 详细介绍android rom移植知识普及
详细介绍android rom移植知识普及 最近接到很多兄弟们的求助,也回答过无数个和下面这个问题类似的问题: 如何编译android 原生代码得到一个rom,然后跑到某某手机上. 鉴于很多兄弟对这块 ...
- Android有用代码(二)
文章转自:http://blog.csdn.net/aomandeshangxiao/article/details/7286354 记得2011年的时候,整理了android有用代码片段这篇文章,后 ...
- android培训讲师介绍,安卓培训讲师浅析android项目重点知识
原标题:安卓培训讲师浅析android项目重点知识 在应用程序之前,必须创建一个相应的Android项目.如果你使用Eclipse开发的话,那就是创建一个Eclipse项目.这个项目用来保存所有源代码 ...
- Android 移动安全知识技术全解(加固技术、常规漏洞、Android 逆向......),移动安全问题不容忽视
前言 您的设备是否处于遭受攻击.劫持或损害的风险中?毫无疑问.剑桥大学的研究人员发现,87% 的 Android 智能手机有至少一个严重漏洞,Zimperium Labs 在早些时候发现,黑客只需通过 ...
- Android中高级进阶知识(最新动脑学院安卓进阶视频 )
Android中高级进阶知识点整理 转载 https://blog.csdn.net/lou_liang/article/details/8285653 那么接下来的文章就是高级进阶,其中或者引用或者 ...
- GitHub上这份《Android 移动安全知识技术全解》火了~
安全问题长久以来就是Android系统的一大弊病,很多人也因此舍弃Android选择了苹果,作为一个Android Developer,我们需要对用户的隐私负责,更需要对用户的数据安全倾尽全力.想到这 ...
- android培训总结范文,android培训基础知识总结
android培训基础知识总结,有需要的朋友可以参考下. android培训之1. Android的四大组件是哪些,它们的作用? Activity:Activity是Android程序与用户交互的窗口 ...
最新文章
- cached-query 将缓存和查询数据库高速连接起来的轻类库
- UVa1112 - Mice and Maze(Dijkstra和Floyd_warshall)
- 2014百度之星资格赛第二题
- SIGIR 2019 | 为什么你的毛衣显胖又显黑?这个算法给你答案
- matlab数字图像处理课程设计报告,数字图像处理课程设计实验报告.doc
- python运算符_Python运算符总结
- 如何用java实现加减_用Java实现不用加减乘除做加法操作
- 电压放大倍数公式运放_模电的半壁江山——运算放大器的原理和应用
- 数据结构与算法分析(四)——C++实现栈
- 开启灯光就是近光吗_科目三考前必看!夜间灯光语音模拟+超全项目操作
- ios超级签名_ios超级签名多少钱?决定超级签名价格的因素有哪些
- 华为mate20云备份恢复卡住了_注意了!包括华为、荣耀在内的14款老机型开启EMUI11公测了...
- C语言实现贪吃蛇[内附详细步骤]
- Thinkpad E430C关闭触摸板(Ubuntu)
- [转载野猪的一篇文章] 设计模式--简单工厂模式在unity3d里面的使用
- 不想用win11了怎么办?一分钟教你win11退回到win10系统
- 这一次,抄袭的人竟然是Facebook!美版微信要出现了吗?!
- 提交订单微信付款逻辑
- linux系统程序问题报告,Linux程序设计实验报告.docx
- 详细过程MD5加密的原理+java实现