分类目录归档:日志

非android studio工程项目结构build.gradle脚本示例

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.1'
    }
}
apply plugin: 'com.android.application'

allprojects {
    repositories {

    }
}

dependencies {
    compile fileTree(include: '*.jar', dir: 'libs')
}

repositories{
    flatDir {
        dirs 'libs'
    }
}

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

给学生在线的你们

网站推荐:


软件推荐:

  • Android Studio

博客推荐:


关于大学

千万不能把时间浪费在睡觉上。
要有一个良好的作息时间,每天拿出时间来钻研技术,多浏览网上的信息,多去搜索不知道的问题,有能力最好每天背英语单词。


关于Android开发

Java基础比较重要,一定要熟知,Android 开发者网站上有好多内容,要适应着去读英文资料。
可以尝试着去阅读一下Android原生应用的源码。新入门建议读郭霖的《第一行代码》
repo下载 下载源可以用清华的,不用翻墙.


工作之后的建议

英语很重要,翻墙很重要
开始工作都会有一个疲惫期,什么都不想干,只想着辞职,这个时候我的处理方式是请几天假,让自己休息一下,仔细考虑清除跳槽的利弊。
平时注重锻炼,身体和眼睛。


欢迎关注我的博客https://darkerthanblack.org
学叔 2015.05.23

终于算是过年了

终于算是过年了,不知从何时起对烟花爆竹失去了兴趣。每次过年都是在看别人热闹。每次都早早的睡了,这一次不仅早早的睡了,而且12点的烟花爆竹声都没能叫醒我。过年似乎真的跟我没关系了,只是一个平常的夜晚。


一眨眼竟然就已经到了谈婚论嫁的年纪。一下子不知所措了。

android为HttpClient和HttpURLConnection添加中国移动代理

在android中,一般需要联网的时候前,都要做一次网络的判断,判断当前的网络状态!然后开始请求网络。当我们使用wap网络的时候,程序中必须要中国移动代理!这样的话,手机才能正常的访问internet!

在android中,有两种方式请求网络:HttpURLConnection和HttpClient请求方式,如果网络状态为wap的时候,都要为两种请求添加中国移动代理的!

第一种方式:HttpURLConnection

 

  1. /**
  2. *
  3. * 使用HttpURLConnection请求Internet
  4. *
  5. * @param context
  6. * context对象
  7. * @param requestUrl
  8. * 请求的URL
  9. * @param param
  10. * 请求的参数
  11. * @return 返回一个inputstream流
  12. */
  13. public static InputStream getHttpURLConnectionInputStream(Context context,
  14. String requestUrl, Map&lt;String, String&gt; param) {
  15.  
  16. URL url;
  17. HttpURLConnection conn = null;
  18. InputStream input = null;
  19. try {
  20. url = new URL(requestUrl);
  21. if (getAPNType(context) == NetWorkUtil.CMWAP) // 当请求的网络为wap的时候,就需要添加中国移动代理
  22. {
  23. Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,
  24. new InetSocketAddress("10.0.0.172", 80));
  25. conn = (HttpURLConnection) url.openConnection(proxy);
  26. } else {
  27. conn = url.openConnection();
  28. }
  29. conn.setConnectTimeout(10000); // 请求超时
  30. conn.setRequestMethod("POST"); // 请求方式
  31. conn.setReadTimeout(1000); // 读取超时
  32. conn.setDoOutput(true);
  33. conn.setDoInput(true);
  34. conn.setUseCaches(false);
  35. conn.setRequestProperty("Charset", "UTF-8");
  36. conn.setRequestProperty("Content-Type",
  37. "application/x-www-form-urlencoded");
  38. OutputStream os = conn.getOutputStream();
  39. StringBuilder sb = new StringBuilder();
  40. Iterator it = param.keySet().iterator();
  41. while (it.hasNext()) {
  42. String key = it.next();
  43. String value = param.get(key);
  44. sb.append(key).append("=").append(value).append("&amp;");
  45. }
  46. String p = sb.toString().substring(0, sb.length() - 1);
  47. System.out.println("请求的参数" + p);
  48. os.write(p.getBytes("utf-8"));
  49. os.close();
  50. if (conn != null) {
  51. input = conn.getInputStream();
  52. }
  53.  
  54. } catch (Exception e) {
  55. e.printStackTrace();
  56. }
  57. return input;
  58. }

上面这种方式就是HttpURLConnection ,这种方式在android开发中也是比较常用的,希望朋友们也要熟悉的掌握!
第二种方式:HttpClient

  1. /**
  2. *
  3. * 使用HttpURLConnection请求Internet
  4. * @param context context对象
  5. * @param requestUrl 请求的URL
  6. * @param param 请求的参数
  7. * @return 返回一个inputstream流
  8. */
  9. public static InputStream getHttpClientInputStream(Context context,String requestUrl, Map&lt;String, String&gt; param)throws Exception {
  10. HttpClient client = new DefaultHttpClient();
  11. if(getAPNType(context)==NetWorkUtil.CMWAP) //当请求的网络为wap的时候,就需要添加中国移动代理
  12. {
  13. HttpHost proxy = new HttpHost("10.0.0.172", 80);
  14. client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
  15. proxy);
  16. }
  17. HttpPost hp = new HttpPost(requestUrl);
  18. hp.setHeader("Charset", "UTF-8");
  19. hp.setHeader("Content-Type", "application/x-www-form-urlencoded");
  20. List list = new ArrayList();
  21.  
  22. Iterator it = param.keySet().iterator();
  23. while (it.hasNext()) {
  24. String key = it.next();
  25. list.add(new BasicNameValuePair(key, param.get(key)));
  26. }
  27. hp.setEntity(new UrlEncodedFormEntity(list,"UTF-8"));
  28. HttpResponse response = null;
  29. response = client.execute(hp);
  30. return response.getEntity().getContent();
  31. }

这个httpClient实现了android内置的DefaultHttpClient,所以使用起来还是很方便的!

但是我发现HttpClient 比HttpURLConnection 要好一些,因为HttpURLConnection 如果使用wap在上网请求的时候,存在很多问题的