Code Monkey home page Code Monkey logo

android-common's Introduction

已停止维护

关于我,欢迎关注
微博:Trinea    主页:codekk.com    邮箱:trinea.cn#gmail.com    微信:codek2

主要包括缓存(图片缓存、预取缓存、网络缓存)、公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)及Android常用工具类(网络、下载、Android资源操作、shell、文件、Json、随机数、Collection等等)。
示例源码:TrineaAndroidDemo
使        用:拉取代码导入IDE,右击你的工程->properties->Android,在library中选择TrineaAndroidCommon。
Api Guide:TrineaAndroidCommon API Guide

Dev Tools App

The Dev Tools App is a powerful android development tool that can help you improve efficiency greatly, It can be used to view the latest open source projects, view activity history, view manifest, decompile, color picker, extract apk or so, view app info, open or close the options in the developer options quickly, and more.

You can download it from DevTools@Google Play.

一. 缓存类

主要特性:(1).使用简单 (2).轻松获取及预取取新图片 (3).包含二级缓存 (4).可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13种)或自定义缓存算法 (5).可方便的保存及初始化恢复数据 (6).省流量性能佳(有且仅有一个线程获取图片) (7).支持http请求header设置及不同类型网络处理(8).可根据系统配置初始化缓存 (9).扩展性强 (10).支持等待队列 (11)包含map的大多数接口。

1. 图片缓存

使用见:图片缓存的使用
适用:获取图片较多且图片使用频繁的应用,包含二级缓存,如新浪微博、twitter、微信头像、美丽说、蘑菇街、花瓣、淘宝等等。效果图如下:
ImageCahe

2. 图片SD卡缓存

使用见:图片SD卡缓存的使用
适用:应用中获取图片较多且图片较大的情况。需要二级缓存及ListView或GridView图片加载推荐使用上面的ImageCache。效果图如下:
ImageSDCardCache

3. 网络缓存

使用见:Android网络缓存
适用:网络获取内容不大的应用,尤其是api接口数据,如新浪微博、twitter的timeline、微信公众账号发送的内容等等。效果图如下:
HttpCache

4. 预取数据缓存

使用见:预取数据缓存
缓存类关系图如下:其中HttpCache为后续计划的http缓存 Image Cache

二. 公用的view

1. 下拉刷新及滚动到底部加载更多的Listview

使用: 下拉刷新及滚动到底部加载更多listview的使用
实现原理: http://trinea.iteye.com/blog/1562281。效果图如下:
DropDownListView

2. 滑动一页(一个Item)的Gallery

使用及实现原理:滑动一页(一个Item)的Gallery的使用。效果图如下:
ViewPager1 ViewPager2

3. 滑动到底部或顶部响应的ScrollView

使用及实现原理: 滚动到底部或顶部响应的ScrollView使用。效果图如下:
ScrollView

三. 工具类

具体介绍可见:Android常用工具类
目前包括HttpUtils、DownloadManagerProShellUtilsPackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。

1. Android系统下载管理DownloadManager使用

使用示例:Android系统下载管理DownloadManager功能介绍及使用示例
功能扩展:Android下载管理DownloadManager功能扩展和bug修改 效果图如下:
downloadManagerDemo

2. Android APK root权限静默安装

使用示例:Android APK root权限静默安装

3. Android root权限

直接调用ShellUtils.execCommand方法

4. 图片工具类

(1)Drawable、Bitmap、byte数组相互转换; (2)根据url获得InputStream、Drawable、Bitmap
更多工具类介绍见Android常用工具类

Proguard

-keep class cn.trinea.android.** { *; }
-keepclassmembers class cn.trinea.android.** { *; }
-dontwarn cn.trinea.android.**

Download

Gradle:

compile 'cn.trinea.android.common:trinea-android-common:4.2.15'

License

Copyright 2013 trinea.cn

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

android-common's People

Contributors

arai-wa avatar bitdeli-chef avatar ddyos avatar hackoooo avatar lguipeng avatar trinea avatar vbauer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-common's Issues

DownloadManagerDemo出现问题

我下载了demo的apk,然后点击DownloadManagerDemo,过了一会提示我“美丽说 下载失败”,之后我就删除了这个apk,为何删除了还是隔一段时间提示我“美丽说 下载失败”...求指教!!!

没什么卵用

差不多吧整个github都抄下来了,运行要下载一大堆东西,建议楼主发点自己写的有研究价值的东西,勿喷谢谢

java.io.SyncFailedException: fsync failed: EINVAL (Invalid argument)

参数无效?
在执行ShellUtils.execCommand()时发现在控制台会有如下提示:
W/System.err: java.io.SyncFailedException: fsync failed: EINVAL (Invalid argument)
W/System.err: at java.io.FileDescriptor.sync(FileDescriptor.java:77)
W/System.err: at java.io.FileOutputStream.flush(FileOutputStream.java:194)
W/System.err: at java.io.FilterOutputStream.flush(FilterOutputStream.java:88)
W/System.err: at java.io.DataOutputStream.flush(DataOutputStream.java:63)

执行commands有问题

for (String command : commands) {
if (command == null) {
continue;
}

            // donnot use os.writeBytes(commmand), avoid chinese charset error
            os.write(command.getBytes());
            os.writeBytes(COMMAND_LINE_END);
            os.flush();
        }

当传入的commands数组过大,os write将近64M的字节时会出现错误

ImageSDCardCache 缓存的使用

ImageSDCardCache initData,还有loadDataFromDb 测试了下,感觉没效果呀。
如果说缓存 有效,是不是在断网 的情况下,也应该显示图片呢。

关于系统截屏

是否打算增加系统截屏方面的功能,刚好我可以提供相应代码

调用PackageUtils的uninstallSilent报错

错误信息:java.lang.SecurityException: Package null does not belong to 1000
求问一下,这是什么原因?静默安装是可以成功的,应用已经用系统签名,并且push到system/app目录下。

建议各工具类分开

建议各工具类分开哦, 这样在一起有点太重量级了, 比如我只想使用图片缓存功能, 但是整个项目都要引入!

Utils Should have 2 version

Hello,

great work. indeed it would be great if we have 2 versions of Utils.

  1. Separate Utils which can be used individually without dependent on another Utils.
  2. Dependent Utils [the current version]

i hope it makes clear. because sometimes a developer wants just one Utils in their project and they are ended up importing many files.

DropDownListView下拉会有闪屏现象

DropDownListView.在下拉时,header会突然整个显示出来,将listivew向下挤压,又很快地恢复到刚拉出一点的状态。这中间会有一次闪屏。另外,正常状态下,scrollbar不能达到最顶端。请确认。

红米Note2静默卸载app失败

红米Note2(已经Root)静默卸载app失败,错误日志是:uninstallSilent successMsg:, ErrorMsg:CANNOT LINK EXECUTABLE: could not load library "libc.so" needed by "/system/bin/sh"; caused by "libc.so" is 32-bit instead of 64-bit

dropDownListView setOnBottomListener抛出Null指针

代码片段:
dropDownListView = (DropDownListView)findViewById(R.id.list_view);
try {
dropDownListView.setOnBottomListener(new OnClickListener() {
@OverRide
public void onClick(View v) {
new GetDataTask(false).execute();
}
});
} catch (Exception e) {
e.printStackTrace();
}
情况:已debug跟踪过dropDownListView不是null
异常信息:
03-28 20:37:11.200 15372-15372/community.o2o.com.meimo W/System.err﹕ java.lang.NullPointerException
03-28 20:37:11.220 15372-15372/community.o2o.com.meimo W/System.err﹕ at cn.trinea.android.common.view.DropDownListView.setOnBottomListener(DropDownListView.java:351)
03-28 20:37:11.220 15372-15372/community.o2o.com.meimo W/System.err﹕ at community.o2o.com.meimo.view.SearchListActivity.onCreate(SearchListActivity.java:36)
03-28 20:37:11.220 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.app.Activity.performCreate(Activity.java:5453)
03-28 20:37:11.220 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
03-28 20:37:11.220 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
03-28 20:37:11.220 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
03-28 20:37:11.225 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.app.ActivityThread.access$900(ActivityThread.java:175)
03-28 20:37:11.225 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
03-28 20:37:11.225 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:102)
03-28 20:37:11.225 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.os.Looper.loop(Looper.java:146)
03-28 20:37:11.225 15372-15372/community.o2o.com.meimo W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5602)
03-28 20:37:11.225 15372-15372/community.o2o.com.meimo W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
03-28 20:37:11.225 15372-15372/community.o2o.com.meimo W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:515)
03-28 20:37:11.230 15372-15372/community.o2o.com.meimo W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
03-28 20:37:11.230 15372-15372/community.o2o.com.meimo W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
03-28 20:37:11.230 15372-15372/community.o2o.com.meimo W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)

项目运行的时候报错,包依赖都没有问题

java.lang.RuntimeException: Unable to start activity ComponentInfo{cn.trinea.android.demo/cn.trinea.android.demo.MainActivity}: android.view.InflateException: Binary XML file line #31: Error inflating class com.google.ads.AdView

关于系统截屏

是否打算增加系统截屏反面的功能,刚好我可以提供相应代码

老哥,还维护吗

            ShellUtils.CommandResult result = ShellUtils.execCommand("screencap", true,true);           
            System.out.println(result.successMsg);
            System.out.println(result.errorMsg);
            System.out.println(result.result);

如果这样的话就永远挂起了,没有响应,我不希望截图保存到闪存,我想直接拿到输出,但是命令返回值只有string类型的

API design discussion

研究了一下imagecache的code。demo app的用法是:
IMAGE_SD_CACHE.get(imageUrlList.get(position), holder.imageView);

一个建议,这个接口是不是不应该关心view呢,包括callback的接口。因为在callback的时候view和url的关系可能变化,或者view已经不可见了。如果用的人把ImageSDCardCache用成singleton的了,那么是不是可能造成view的内存泄漏呢。

可能我的理解有误,供大家讨论吧

DropDownListView樣式問題

您好,我使用DropDownListView去實作下拉重整和載入更多,然後用下面程式碼設定樣式:

listView.setDropDownStyle(true);
listView.setOnBottomStyle(true);
listView.setAutoLoadOnBottom(true);

但是當只有很少的Item在ListView的時候就會顯示像這樣,但是正常應該是上下拉的時候才會顯示Header和Bottom View才對。
device-2015-02-11-100742

是否有解決方法呢??謝謝。

SingletonUtils.java 如何使用?

你好,SingletonUtils.java这个类我关注了好久,一直没有明白它是如何使用的,我的理解是为了单利代码的重复书写,但是具体的写法我不能明白。麻烦给讲解或者发段代码学习一下。谢谢!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.