如何安全使用Android智能手机

别说我是丑小鸭

别说我是丑小鸭

2016-03-31 14:24

下面是个如何安全使用Android智能手机教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

如何安全使用Android智能手机

   如何安全使用Android智能手机?Android智能手机越来越流行,市场占有率节节攀高,但手机安全问题却也引起了大家的关注。全球Android系统安全威胁中,中国大陆地区以26.7%的比例高居榜首,其中以隐私信息窃取为目的的恶意软件高达24.3%,居所有恶意行为之首。如何安全使用Android智能手机成为用户最关心的问题,下面我们一起了解如何安全使用Android智能手机。

  方法/步骤

  安全下载

  每次下载Android系统应用软件时,您可以选择从软件的官方网站下载该软件,尽量不要利用搜索引擎搜索到的链接进行下载。另外,您可以从各大安卓市场下载软件,如豌豆荚、360手机助手、腾讯手机管家等知名的软件下载平台下载,确保软件的安全。

如何安全使用Android智能手机 图老师

  安装手机防护软件

  腾讯手机管家、360手机卫士、手机毒霸等防护软件都有出色表现,为用户提供隐私保护、隐私监控等全方面的隐私保护功能,可有效确保手机中的个人信息不被恶意程序窃取。定期扫面手机程序,开启应用安装检测功能,实时监测软件的安装tulaoShi.com是否存在恶意行为。

如何安全使用Android智能手机

  谨慎刷机

  目前,刷机盛行,手机控们更是乐此不疲的享受刷机的乐趣,本人也不例外。但是,在刷机前,要鉴别手机ROM包中是否存在恶意代码,最好在值得信任的论坛获取ROM刷机包。此外,很多水货手机的ROM中都被内置了恶意代码,稍不注意就会被激活,大家需谨慎购买水货手机。

如何安全使用Android智能手机

  安全接入WIFI

  安卓手机使用wifi上网能享受快速的网络体验,但是用户手机不要轻易接入陌生WIFI,以防局域网泄露手机信息。在公告场所存在很多共享wifi,最好不要接入,以免手机中的个人隐私等信息被恶意窃取。

  处理垃圾短信

  垃圾短信盛行的年代,我们该有所行动了,一方面保护自己以免陷入财产危机,另一方面给自己一份清静。大部分防护软件都具有垃圾短信拦截功能,如360手机卫士、腾讯手机管家等,你可以开启垃圾短信拦截功能。此外,一些通讯录软件也集成了垃圾短信拦截功能。

如何安全使用Android智能手机

  安全传输文件

  在电脑端下载的音乐、视频、文档等文件最好通过杀毒软件扫描查杀是否存在病毒,然后再传输到手机中,对于从可信网站下载的资料可以免去查杀过程。

Android开发之异步获取并下载网络资源

  1)从指定的URL获取对应的流

 既然要获取网络资源,那么首先得有个URL,那么这里我首先封装一个打开URL连接获取到的InputStream 流,这样一来无论是图片资源还是文本文件资源都可以使用该接口方法来获取流。 该功能主要应用URLConnection和HttpURLConnection来实现,具体实现方案如下: 复制代码private InputStream openHttpConnection(String urlString) throws IOException{                InputStream in = null;        int response = -1;        URL url = new URL(urlString);        URLConnection conn = url.openConnection();                if(!(conn instanceof HttpURLConnection)){            throw new IOException("It is not an HTTP connection");        }        try {            HttpURLConnection httpConn = (HttpURLConnection) conn;            httpConn.setAllowUserInteraction(false);            httpConn.setInstanceFollowRedirects(true);            httpConn.setRequestMethod("GET");            httpConn.connect();            response = httpConn.getResponseCode();            if (response == HttpURLConnection.HTTP_OK) {                in = httpConn.getInputStream();            }        } catch (Exception ex) {            Log.v("Networking",ex.getLocalizedMessage());            throw new IOException("Error connecting");        }        return in;            }复制代码(2)封装了上面的获取流方法接口后,我们就可以利用上面封装的方法来获取并下载相应图片和文本文件内容了 获取并下载图片资源方法: 复制代码private Bitmap downloadImage(String url){        Bitmap bitmap = null;        InputStream in = null;        try {            in = openHttpConnection(url);            bitmap = BitmapFactory.decodeStream(in);            in.close();        } catch (IOException e) {            // TODO Auto-generated catch block            Log.v("NetworkingActivity", e.getLocalizedMessage());        }        return bitmap;    }复制代码  获取并下载文本内容方法: 复制代码private String downloadText(String url){        int BUFFER_SIZE = 2000;        InputStream is = null;        try {            is = openHttpConnection(url);        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();            return "";        }        InputStreamReader isr = new InputStreamReader(is);        int charRead;        String str="";        char[] inputBuffer = new char[BUFFER_SIZE];        try {            while((charRead=isr.read(inputBuffer))0){                String readString = String.copyValueOf(inputBuffer, 0, charRead);                str += readString;                inputBuffer = new char[BUFFER_SIZE];            }            is.close();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();            return "";        }                                return str;    }复制代码(3)在获取下载图片资源和文本内容资源方法都完成后,现在就可以开始下载任务了,为了防止等待效应,一般采用异步任务来下载网络资源。 对对应的下载资源任务封装各自的异步下载任务即可。下面就是实现异步下载任务的方案: 异步下载图片任务: 复制代码private class DownloadImageTask extends AsyncTaskString, Bitmap, Long{                         long imagesCount = 0;        ProgressBar progressBar;        public DownloadImageTask(ProgressBar pBar){            this.progressBar = pBar;        }                @Override        protected Long doInBackground(String... urls) {            // TODO Auto-generated method stub            for(int i = 0; i urls.length;i++){                Bitmap imageDownloaded = downloadImage(urls[i]);                if(imageDownloaded!=null){                    imagesCount ++;                    publishProgress(imageDownloaded);                    try {                        Thread.sleep(300);                    } catch (InterruptedException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }                            }            return imagesCount;                    }        //display the image downloaded        @Override        protected void onProgressUpdate(Bitmap... bitmaps) {            // TODO Auto-generated method stub            ivImg.setImageBitmap(bitmaps[0]);            progressBar.setProgress((int) imagesCount*10);        }        //when all the images have been downloaded        @Override        protected void onPostExecute(Long imageDownloaded) {            // TODO Auto-generated method stub            String str = "下载完成!一共下载了"+imagesCount +"张图片";            Toast.makeText(getBaseContext(), str, Toast.LENGTH_SHORT).show();        }            }复制代码  异步下载文本文件内容任务: 复制代码private class DownloadTextTask extends AsyncTaskString, Void, String{         @Override        protected void onPostExecute(String result) {        &tulaoshinbsp;   // TODO Auto-generated method stub            Toast.makeText(getBaseContext(), result, Toast.LENGTH_LONG).show();        }         @Override        protected String doInBackground(String... urls) {            // TODO Auto-generated method stub            return downloadText(urls[0]);        }            }复制代码这样一来,异步下载网络资源就完成了。 下面为了读者方便测试,下面提供本文实例代码中的相关网络资源URL,以方便大家自己测试使用。其余非核心代码就不在贴出来,望读者见谅。 复制代码//图片下载URLsprivate String[] mUrl =        {            "http://images.cnitblog.com/i/322919/201405/181111308592436.png",            "http://images.cnitblog.com/i/322919/201405/181111385003770.png",            "http://images.cnitblog.com/i/322919/201405/181111493901865.png",            "http://images.cnitblog.com/i/322919/201405/181111550463327.png",            "http://images.cnitblog.com/i/322919/201405/181117587961455.png",            "http://images.cnitblog.com/i/322919/201405/181118041251414.png",            "http://images.cnitblog.com/i/322919/201405/181119313754936.png",            "http://images.cnitblog.com/i/322919/201405/181119357816682.png",            "http://images.cnitblog.com/i/322919/201405/181119458753432.png",            "http://images.cnitblog.com/i/322919/201405/181119499372608.png",            "http://images.cnitblog.com/i/322919/201405/181120173901329.png",            "http://images.cnitblog.com/i/322919/201405/181120244849561.png",            "http://images.cnitblog.com/i/322919/201405/181120357812013.png",            "http://images.cnitblog.com/i/322919/201405/181120398596959.png"        };progressBar = (ProgressBar) findViewById(R.id.progressBar);progressBar.setMax(mUrl.length*10);progressBar.setVisibility(View.VISIBLE);//异步下载图片任务DownloadImageTask task = new DownloadImageTask(progressBar);task.execute(mUrl);//文本文件URLString strUrl = "http://www.sogou.com/docs/about.htm"; //异步下载文本文件内容任务new DownloadTextTask().execute(strUrl);

Android L/iOS8/WP8.1哪个升级最重大?

   周一外媒PhoneArena就一个有趣的话题发起了投票,Android、iOS和Windows Phone三大平台的最新升级,哪个重大?简而言之,Android L、iOS8和Windows Phone 8.1哪个对其生态系统的意义最为重大。

Android L/iOS8/WP8.1哪个升级最重大?  图老师

  本次投票图老师共用近乎7000名用户参加。高达54%的用户认为WP8.1是三个升级中最为重要的,这对微软而言显然是个不错的消息,看上去WP8.1有望从竞争对手手中夺取更大的份额;36%的投票者认为Android L最为重大,毕竟Android L不仅带来了更多功能,还采用了全新的设计;仅有10%的用户认为苹果iOS8最为重大,不过考虑到苹果在iOS8中迈出了开放的第一步,这多少还是有些出人意外。

  目前仅有WP8.1开始正式推送,iOS8和Android L则要等到今年秋季才会正式推出。

Android中查看服务是否开启的工具类

 这个也是昨天学习的,做下总结。

检查服务是否开启要写成一个工具类,方便使用,传服务的名字返回Boolean值,当然,因为需要,还要传一个上下文context。

说一下这个工具类的几个关键点:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

1.方法要传context和serviceName,context用来getSystemService()操作获得ActivityManager。注意,这个方法参数要用大写的Context中的参数:Context.ACTIVITY_SERVICE,要不然会出错,还不知道哪错的,花了我10分钟的时间才知道,谨记下。

2.ActivityManager实例可以getRunningService()方法,参数是获得服务最大数目,一般100就好。

3.上面的方法返回的事一个List,要对他进行遍历,获的每一个服务的名字,在比较,返回结果。

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

下面是具体代码。

123456789101112131415161718192021 import java.util.List; import android.app.ActivityManager;import android.app.ActivityManager.RunningServiceInfo;import android.app.Service;import android.content.Context; public class ServiceStateUtiles {         public static Boolean isServiceRunning(Context context, String serviceName) {        //获取服务方法  参数 必须用大写的Context!!!        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);        Listrunningserviceinfo infos = am.getRunningServices(100);        for (RunningServiceInfo info : infos) {            String className = info.service.getClassName();            if(serviceName.equals(className))                return true;        }        return false;    }}/runningserviceinfo

Android中手机号码归属地查询实现

 这部分是昨天学习的,但是因为眼睛超负荷所以拖到现在,以后要合理规划时间。

目前手机里面的号码归属地查询主要是通过两种方式:1.联网查询,2.匹配本机归属地数据库。

我认为两种结合方式最好,在本地数据库中匹配不到的在进行联网查询,能大大增加匹配效果,并且不用过于增加本地数据库容量而增大安装包大小。

步骤:1.开启软件的时候把数据库从assets目录拷贝到files目录下,如果已存在,则不用重新拷贝。

2.实现界面。

3.实现工具类PhoneAddressUtils的getPhoneAddress()方法

4.在界面类activity里调用工具类方法得到地址兵显示出来。

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

首先是复制数据库的操作:

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)? 1234567891011121314151617181920212223 private void copyDB() {    File file = new File(getFilesDir(), "address.db");    if(file.exists()&&file.length()0) {        Toast.makeText(this, "已经复制数据库", 0).show();    } else {        try {            AssetManager am = getAssets();                         byte[] buffer = new byte[1024];            InputStream is = am.open("address.db");            FileOutputStream fis = new FileOutputStream(file);            int len = 0;            while((len=is.read(buffer))0) {                fis.write(buffer, 0, len);            }        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }          }


因为运行中工具类得不到assets目录下的文件,所以要在在开机启动的SplashActivity中把数据库拷贝到files目录下。

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

获得assert目录下的文件要用AssetManager对象的open()方法,打开文件返回输入流。

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

实现界面:就一个简单的输入框,按钮,显示框就行。

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

工具类:

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)? 1234567891011121314151617181920212223242526 package com.itheima.mobilesafe.db.dao; import android.database.Cursor;import android.database.sqlite.SQLiteDatabase; public class AddressDao {    private static String path = "data/data/com.itheima.mobTulaoshi.Comilesafe/files/address.db";    public static String getAddress(String number) {                 String address = number;        if(number.matches("^1[34568]d{9}$")) {            String sql = "select location from data2 where id = (select outkey from data1 where id= ?)";               SQLiteDatabase database = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);            Cursor cursor = database.rawQuery(sql, new String[] {number.substring(0, 7)});            while(cursor.moveToNext()) {                address = cursor.getString(0);            }            cursor.close();            database.close();        } else {            address = "不是手机号码";        }                 return address;    }}

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

调用显示:

点击按钮时:

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)? 12345 public void queryAddress(View view) {        String number = et_phone.getText().toString();        String address = AddressDao.getAddress(number);        et_address.setText(address);    }

但是我们要动态的显示位置,所以要对输入框加一个TextChangedListener,当输入字符串大于3的时候,自动调用进行匹配显示出来。

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)

 

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/android/)? 123456789101112131415161718192021222324 et_phone.addTextChangedListener(new TextWatcher() {                         @Override            public void onTextChanged(CharSequence s, int start, int before, int count) {                // TODO Auto-generated method stub                if(s.length()3) {                    String address = AddressDao.getAddress(s.toString());                    m.tulaoshi.com;et_address.setText(address);                }            }                         @Override            public void beforeTextChanged(CharSequence s, int start, int count,                    int after) {                // TODO Auto-generated method stub                             }                         @Override            public void afterTextChanged(Editable s) {                // TODO Auto-generated method stub                             }        });
展开更多 50%)
分享

猜你喜欢

如何安全使用Android智能手机

Android
如何安全使用Android智能手机

智能手机拍照技巧

摄影 人像摄影 静物摄影
智能手机拍照技巧

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何保养智能手机

手机 智能手机
如何保养智能手机

风铃支持智能手机

电脑网络
风铃支持智能手机

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

智能手机续航排名

手机软件 应用软件
智能手机续航排名

智能手机必备软件推荐

手机软件 应用软件
智能手机必备软件推荐

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

通过Android设备直接连接打印机打印文件

通过Android设备直接连接打印机打印文件

iPhone Safari浏览器怎样清理缓存

iPhone Safari浏览器怎样清理缓存
下拉加载更多内容 ↓