Дэн Дайер отвечает правильно. Я хотел бы пояснить немного, чтобы прояснить это на примере. Вы можете использовать такой макет (он называется config.xml в res / layout).
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res/com.xxxx" android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
myapp:backgroundColor="#000000"
myapp:primaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC"/>
</RelativeLayout>
В своей деятельности, которая расширяет PreferenceActivity, вы пишете что-то подобное в методе onCreate;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.config);
}
pl / proxy (по Skype) - хорошее решение для этого. Для этого требуется, чтобы ваш доступ осуществлялся через API функций, но как только он у вас есть, он может сделать его довольно прозрачным.
PostgreSQL позволяет разбивать разделы двумя разными способами. Один по диапазону, а другой по списку. Оба используют наследование таблиц для разделения.
Разделение по диапазону, обычно диапазону дат, является наиболее распространенным, но разделение по списку может быть полезно, если переменные, составляющие раздел, статичны и не искажены.
Разделение выполняется с помощью наследования таблиц, поэтому первое, что нужно сделать, это создать новые дочерние таблицы.
CREATE TABLE measurement (
x int not null,
y date not null,
z int
);
CREATE TABLE measurement_y2006 (
CHECK ( logdate >= DATE '2006-01-01' AND logdate < DATE '2007-01-01' )
) INHERITS (measurement);
CREATE TABLE measurement_y2007 (
CHECK ( logdate >= DATE '2007-01-01' AND logdate < DATE '2008-01-01' )
) INHERITS (measurement);
Затем необходимо использовать правила или триггеры для удаления данных в правильные таблицы. Правила выполняются быстрее при массовых обновлениях, срабатывают при единичных обновлениях, а также их легче поддерживать. Вот образец триггера.
CREATE TRIGGER insert_measurement_trigger
BEFORE INSERT ON measurement
FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger();
и триггерная функция для вставки
CREATE OR REPLACE FUNCTION measurement_insert_trigger()
RETURNS TRIGGER AS $$
BEGIN
IF ( NEW.logdate >= DATE '2006-01-01'
AND NEW.logdate < DATE '2007-01-01' ) THEN
INSERT INTO measurement_y2006 VALUES (NEW.*);
ELSIF ( NEW.logdate >= DATE '2007-01-01'
AND NEW.logdate < DATE '2008-01-01' ) THEN
INSERT INTO measurement_y2006m03 VALUES (NEW.*);
ELSE
RAISE EXCEPTION 'Date out of range.';
END IF;
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
Эти примеры представляют собой упрощенные версии документации postgresql для облегчения чтения.
Я не знаком с pgpool2, но gridsql - это коммерческий продукт, разработанный для EnterpriseDB, коммерческой базы данных который построен поверх postgresql. Их продукция очень хороша, но я не думаю, что она будет работать на стандартном postgresl.